Char Array an zufälligen stellen mit einem "x" füllen.

Zakon

Bekanntes Mitglied
Hallo ich bin Informatik Student und absoluter neuling in Java.
Gerade ertsmal in der dirtten Woche 🙂.
Meine Augabe ist es ein Viergewinnt Spiel zu programmieren was sich selber zufällig füllt.
Dazu habe ich erstmal ein 5x5 Array erstellt.
Mir ist klar das ich das mit Math.random höchstwahrscheinlich lösen muss nur weiss ich nicht.


Java:
public class Spiel {
    public static void main(String[] args) {
        //Spielfeld erstellen
        char[][] spielfeld = new char[5][5];
        for (int y = 0; y < 5; y++) {
            for (int x = 0; x < 5; x++) {
                spielfeld[y][x] = (' ');
                System.out.print(spielfeld[y][x] + " | "); // zwischen den
            }
            System.out.println(" ");
        }
        //Spielfeld befüllen
        for(int i =0; i<spielfeld.length;i++){
            for(int j = 0;j<spielfeld.length;j++){
                    //Zufälliges Feld auswählen und befüllen
            }
        }
    }
}

Wäre super wenn mir jemand einen kleinen Denkanstoß geben könnte.
Danke im Vorraus 🙂.
 
Wenn ich es richtig verstanden habe, soll jedes Feld entweder mit einem ' ' oder einem 'X' belegt werden?
Random nextBoolean() würde ich da nehmen.

Deine Schleife könnte dann so aussehen.
Java:
Random random = new Random();
for (int i = 0; i < spielfeld.length; i++) {
    for (int j = 0; j < spielfeld.length; j++) {
        spielfeld[i][j] = random.nextBoolean() ? ' ' : 'X';
       }
 
Wenn ich es richtig verstanden habe, soll jedes Feld entweder mit einem ' ' oder einem 'X' belegt werden?
Random nextBoolean() würde ich da nehmen.

Deine Schleife könnte dann so aussehen.
Java:
Random random = new Random();
for (int i = 0; i < spielfeld.length; i++) {
    for (int j = 0; j < spielfeld.length; j++) {
        spielfeld[i][j] = random.nextBoolean() ? ' ' : 'X';
       }
Ja genau dankeschön 🙂. Wenn du mir jetzt vielleicht noch kurz erklären könntest wofür das ? steht.
 
Zuletzt bearbeitet von einem Moderator:
Das ist ein Tenary Operator. Links vor dem ? steht ein boolean Ausdruck, ist dieser true gibt er den Wert links vor dem : zurück, andernfallls den rechten.

Also eigentlich das gleiche wie:
Java:
if (random.nextBoolean()) {
   spielfeld[i][j] = ' ';
else {
   spielfeld[i][j] = ' ';
}
 
Das ist ein Tenary Operator. Links vor dem ? steht ein boolean Ausdruck, ist dieser true gibt er den Wert links vor dem : zurück, andernfallls den rechten.

Also eigentlich das gleiche wie:
Java:
if (random.nextBoolean()) {
   spielfeld[i][j] = ' ';
else {
   spielfeld[i][j] = ' ';
}
Ahhhh ok bin dir sehr dankbar hast mir echt weitergehofen 🙂
 

Neue Themen


Zurück
Oben