Schiffe versenken - Zufallszahlen in einem Array

Shao

Mitglied
Guten Abend, ich bin dabei eine sehr einfache Version von Schiffe versenken zu programmieren bekomme aber immer beim zufälligen belegen meines x*x großen Feldes komische Werte.
Bei einem 10*10 Feld zb. bekomme ich entweder 0,3 oder 10 Felder mit schiffen (10 sollen es seien) aber er zeigt mir immer an das er 10 mal die 1 gesetzt hat. Ich suche schon echt lange rum aber der Fehler kommt mir einfach nicht in den Schädel.

Im Code ist das zufallszeug in der initFeldZwei



Java:
public class SchiffeVersenken {
    public static void main(String[] args) {
        System.out.println("Bitte die Seitenlaenge des Feldes eingeben: ");
        int seitenlaenge = 10;//IO.readInt();
        int maxSchiffe = (seitenlaenge * seitenlaenge) / 10;
        String[][] spielfeldSpielerEins = initFeldEins(seitenlaenge, maxSchiffe);
        String[][] spielfeldSpielerZwei = initFeldZwei(seitenlaenge, maxSchiffe);
        //System.out.println("Bis wieviel wollen sie spielen ? :");
        ausgabe(spielfeldSpielerZwei);
    }

    static String[][] initFeldEins(int seitenlaenge, int schiffe) {
        return new String[seitenlaenge][seitenlaenge];
    }

    static String[][] initFeldZwei(int seitenlaenge, int maxSchiffe) {
        int schiffZaehler = 0;
        String[][] feldZwei = new String[seitenlaenge][seitenlaenge];
        for (int a = 0; a < feldZwei.length; a++) {
            for (int b = 0; b < feldZwei[a].length; b++) {
                feldZwei[a][b] = "";
            }
        }
        while (schiffZaehler < maxSchiffe) {
            for (int a = 0; a < feldZwei.length; a++) {
                for (int b = 0; b < feldZwei[a].length; b++) {
                    if (schiffZaehler < maxSchiffe && !feldZwei[a][b].equals("1") && getZufallsZahl() == 1) {
                        feldZwei[a][b] = "1";
                        schiffZaehler++;
                    }
                    else {
                        feldZwei[a][b] = "0";
                    }
                }
            }
        }
        System.out.println(schiffZaehler);
        return feldZwei;
    }

    static boolean treffer(String feld[][], int x, int y) {
        return feld[x][y].equals("1");
    }

    static int getZufallsZahl() {
        if ((int) (Math.random() * 10) >= 9) {
            return 1;
        } else {
            return 0;
        }
    }

    static void ausgabe(String feld[][]) {
        for (int a = 0; a < feld.length; a++) {
            for (int b = 0; b < feld[a].length; b++) {
                System.out.print(feld[a][b] + "\t");
            }
            System.out.println();
        }
    }
}

Vllt sieht ja einer der erfahrenen Programmier den Fehler sofort :)
Mit freundlichen Grüßen
 
Zuletzt bearbeitet:

mihe7

Top Contributor
Ich verstehe gar nicht, wie Du darauf kommst, der Code würde Schiffe bestimmter Größe irgendwie setzen. Letztlich belegst Du die Felder Deines Spielfelds zufällig mit 10 %-iger Wahrscheinlichkeit mit "1"en bzw. mit 90 %-iger Wahrscheinlichkeit mit "0"en.
 

Shao

Mitglied
ja in dem fall sind die schiffe nur ein feld groß. 1 = schiff , 0 = kein schiff. Aber er soll das ganze ja solange machen bis er 10 (feldzahl/10) schiffe gesetzt hat. aber er setzt immer 0,3 oder 10 Schiffe
 

mihe7

Top Contributor
Naja, Du überschreibst ja auch ggf. ein bereits gesetztes Feld wieder mit "0".

Nachtrag: hier übrigens eine Ausgabe
Code:
10
0    1    0    0    0    0    0    0    0    0   
0    0    0    0    1    0    0    0    0    0   
0    0    0    0    0    0    0    0    0    0   
0    0    0    0    0    0    0    0    0    0   
0    0    0    0    0    0    0    0    0    0   
0    0    0    0    0    0    0    0    0    0   
0    0    0    0    0    0    0    0    0    0   
0    0    0    0    0    0    0    0    0    0   
0    0    0    0    0    0    0    0    0    0   
0    0    0    0    0    0    0    0    0    0
Hier sind z. B. nur 2 Einsen zu sehen.
 

Shao

Mitglied
ahh stimmt ich sehs. Habe jetzt mal die frage ergänzt und nun scheint es zu gehen

Java:
        } else if (feld[a][b].equals("1")) {
                        feld[a][b] = "1";
                    } else {
                        feld[a][b] = "0";
                    }
 

mihe7

Top Contributor
Java:
else if (feld[a][b].isEmpty()) {
    feld[a][b] = "0";
}
sollte reichen.

Nachtrag: noch einfacher wäre es, Du würdest einfach das Spielfeld statt mit leeren Strings gleich mit "0" initialisieren...
 


Schreibe deine Antwort... und nutze den </> Button, wenn du Code posten möchtest...
Ähnliche Java Themen
  Titel Forum Antworten Datum
kevkev Hilfe bei Schiffe versenken Java Basics - Anfänger-Themen 5
G Wie funktioniert das? > Schiffe versenken Java Basics - Anfänger-Themen 13
M Java Schiffe versenken - Positionierung Java Basics - Anfänger-Themen 3
D Erste Schritte Schiffe versenken Java Basics - Anfänger-Themen 11
M "illegal start of type" eindimensionales Schiffe versenken Java Basics - Anfänger-Themen 7
T OOP Mein erstes Java-Spiel - Schiffe versenken! Java Basics - Anfänger-Themen 2
J Ein Grafisches Gitternetz (für Schiffe versenken) darstellen - Wie? Java Basics - Anfänger-Themen 6
L Schiffe versenken Java Basics - Anfänger-Themen 7
N Java Einstieg Schiffe versenken Java Basics - Anfänger-Themen 4
P Spiel im Schiffe-Versenken Stil, Problem mit Erstellung des zweidimensionalen ARRAYs Java Basics - Anfänger-Themen 7
I Schiffe versenken Java Basics - Anfänger-Themen 3
I Schiffe versenken, Netzwerk, swing, Thread Java Basics - Anfänger-Themen 5
T Schiffe versenken Java Basics - Anfänger-Themen 10
J Schiffe Versenken Java Basics - Anfänger-Themen 11
N Schiffe verstecken Java Basics - Anfänger-Themen 6
H Zufallszahlen generieren Java Basics - Anfänger-Themen 5
H 36 Zufallszahlen die sich nicht wiederholen Java Basics - Anfänger-Themen 27
J Zufallszahlen generieren und Werte vergleichen Java Basics - Anfänger-Themen 3
S Hilfe : Unendlich viele Zufallszahlen erstellen? Java Basics - Anfänger-Themen 8
J Fehler beim generieren von 4 Zufallszahlen Zahl doppelt ist eigentlich ausgeschlossen Java Basics - Anfänger-Themen 9
S Aus gleichverteilte Zufallszahlen normalverteilte Zufallszahlen generieren ? Java Basics - Anfänger-Themen 1
N Array mit Zufallszahlen und Divison Java Basics - Anfänger-Themen 7
A Mit Rekursion Zufallszahlen erstellen und größte finden Java Basics - Anfänger-Themen 5
A Dreidimensionales Array mit Zufallszahlen befüllen Java Basics - Anfänger-Themen 18
J Klassen Math && Random: wie zufällig sind Zufallszahlen? Java Basics - Anfänger-Themen 19
T Methoden HashSet Objekt mit Zufallszahlen befüllen Java Basics - Anfänger-Themen 3
L Array-Problem/Zufallszahlen Java Basics - Anfänger-Themen 7
V Array mit Zufallszahlen - Anfänger - Hilfe Java Basics - Anfänger-Themen 12
B Zufallszahlen ohne Wiederholung Java Basics - Anfänger-Themen 10
D Array mit Zufallszahlen, dann sortieren: Hilfe gesucht! Java Basics - Anfänger-Themen 1
B Zufallszahlen unabhängig von Intervallen Java Basics - Anfänger-Themen 2
J Ungerade Zufallszahlen in JAVA Java Basics - Anfänger-Themen 31
B Zufallszahlen & Laufzeitmessung (insertionSort) Java Basics - Anfänger-Themen 7
W Zufallszahlen Java Basics - Anfänger-Themen 3
R Arrays Zufallszahlen Java Basics - Anfänger-Themen 10
W 10x10 Feld mit Zufallszahlen erstellen Java Basics - Anfänger-Themen 4
B Array erstellen,ausgeben,mit zufallszahlen füllen aber wie ? Java Basics - Anfänger-Themen 1
T Zufallszahlen von x bis 80 Java Basics - Anfänger-Themen 10
P Zufallszahlen ohne zahlen einer List Java Basics - Anfänger-Themen 21
K Keine doppelten Zufallszahlen im Array Java Basics - Anfänger-Themen 17
G Zufallszahlen Gewichten Java Basics - Anfänger-Themen 3
J Zufallszahlen Häufigkeit Java Basics - Anfänger-Themen 8
L 6stellige Zufallszahlen erzeugen & auf einzigartigkeit prüfen Java Basics - Anfänger-Themen 3
W Java 2 Teams mit Zufallszahlen Java Basics - Anfänger-Themen 2
R Keine doppelten Zufallszahlen Java Basics - Anfänger-Themen 2
F Array mit Zufallszahlen sortieren Java Basics - Anfänger-Themen 7
G Methoden BigInteger Zufallszahlen erzeugen Java Basics - Anfänger-Themen 5
X write() und Zufallszahlen Java Basics - Anfänger-Themen 2
L Zufallszahlen addieren Java Basics - Anfänger-Themen 6
J Mehrere Zufallszahlen erzeugen, aber keine darf doppelt erzeugt werden - Wie? Java Basics - Anfänger-Themen 5
T Problem mit Zufallszahlen Java Basics - Anfänger-Themen 2
T Matrizzen addition mit zufallszahlen Java Basics - Anfänger-Themen 10
E Zufallszahlen Java Basics - Anfänger-Themen 7
R Probleme mit Zufallszahlen Java Basics - Anfänger-Themen 10
K Datentypen Gleiche Zufallszahlen in verschiedenen Datenstrukturen Java Basics - Anfänger-Themen 6
C Zufallszahlen mit Arrays Java Basics - Anfänger-Themen 8
P Array mit Zufallszahlen von einem Wuerfel Java Basics - Anfänger-Themen 15
B Zufallszahlen in ein Array eintragen. Java Basics - Anfänger-Themen 7
P Zufallszahlen fuer Lotto generieren Java Basics - Anfänger-Themen 28
L Hilfe, doppelte Zufallszahlen Java Basics - Anfänger-Themen 13
S Wie Zufallszahlen in txt speichern? Java Basics - Anfänger-Themen 4
K zufallszahlen in Array Speichern = Nullpointer exception Java Basics - Anfänger-Themen 24
F Aus Regulären Ausdrücken Zufallszahlen bilden Java Basics - Anfänger-Themen 6
M Zufallszahlen mit Random Java Basics - Anfänger-Themen 4
S Summe von Zufallszahlen Java Basics - Anfänger-Themen 9
B Zufallszahlen Java Basics - Anfänger-Themen 5
M Zufallszahlen aus einem bestimmten Intervall Java Basics - Anfänger-Themen 5
N Normalverteilte Zufallszahlen mit benutzerdefiniertem/r EW/Var Java Basics - Anfänger-Themen 5
C Zufallszahlen Problem Java Basics - Anfänger-Themen 6
C Zufallszahlen Java Basics - Anfänger-Themen 3
C Frage zur Generierung von Zufallszahlen Java Basics - Anfänger-Themen 9
W Zufallszahlen für Array Java Basics - Anfänger-Themen 3
G Problem mit Zufallszahlen Java Basics - Anfänger-Themen 6
G Zufallszahlen die alles einmal vorkommen Java Basics - Anfänger-Themen 15
G Lotto Zufallszahlen zählen Java Basics - Anfänger-Themen 3
A Zufallszahlen generieren Java Basics - Anfänger-Themen 2
A Problem mit dem Zufallszahlen-Generator Java Basics - Anfänger-Themen 17
J Zufallszahlen einmalig ausgeben Java Basics - Anfänger-Themen 6
B Int Array mit Zufallszahlen füllen Java Basics - Anfänger-Themen 8
G Zufallszahlen ohne doppelten Wert Java Basics - Anfänger-Themen 5
R Zufallszahlen mit Java Java Basics - Anfänger-Themen 11
N Zufallszahlen wiederholungslos erzeugen Java Basics - Anfänger-Themen 8
G Zufallszahlen erraten Java Basics - Anfänger-Themen 8
K zufallszahlen int / double, gerade / ungerade problem . Java Basics - Anfänger-Themen 2
X Lotto Zufallszahlen mit ArrayList erstellen Java Basics - Anfänger-Themen 3
M Zufallszahlen fertig! aber nice to have noch offen Java Basics - Anfänger-Themen 5
M generierung von zufallszahlen Java Basics - Anfänger-Themen 4
B Zufallszahlen erzeugen die nicht gleich sind ;/ Java Basics - Anfänger-Themen 10
M Zufallszahlen Java Basics - Anfänger-Themen 3
B Satz Zufallszahlen ohne Wiederholung Java Basics - Anfänger-Themen 14
G Zufallszahlen Java Basics - Anfänger-Themen 4
N ganzzahlige Zufallszahlen Java Basics - Anfänger-Themen 13
B Zufallszahlen je einmal in Array einfügen Java Basics - Anfänger-Themen 4
H Zufallszahlen Java Basics - Anfänger-Themen 2

Ähnliche Java Themen


Oben