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...
 
Ä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

Neue Themen


Oben