Array zum Speichern von Würfen

Lacritz

Mitglied
Heyho
bin derzeitig an einem Programm zum Speichern von Würfen. man würfelt mit 2 würfeln gleichzeitig , wobei wurf 1 = zeilen , wurf 2 = spalte bedeutet , also wenn ich (2;1) habe bedeutet es das das feld in zeile 2 , spalte 1 um eins erhöht wird.

Das array soll 6x6 groß sein , (klar da es hier um herkömmliche würfel mit 6 Augen geht)

habe folgendes Programm bisher geschrieben, finde aber leider den Fehler bisher nicht!
Bitte um Hilfe

Java:
import java.util.Arrays;

import javax.swing.JOptionPane;

public class zaehlenvondoppelwuerfen {

	public static int rollDice() {
		return (int) Math.floor(Math.random() * 6 + 1);
	}

	static int[][] arrayFeld = new int[6][6];
	static int wuerfe;
	static String testString;

	static int[][] fillArray(int wuerfe) {

		int counter = 0;
		int wurfeins;
		int wurfzwei;
		while (counter <= wuerfe) {
			wurfeins = rollDice();
			wurfzwei = rollDice();

			arrayFeld[wurfeins][wurfzwei] = +1;
			counter++;
		}
		return arrayFeld;
	}

	public static void main(String[] args) {
		wuerfe = Integer.parseInt(JOptionPane
				.showInputDialog("Anzahl ihrer Wuerfe="));
		arrayFeld = new int[6][6];
		arrayFeld = fillArray(wuerfe);
		System.out.print(Arrays.toString(arrayFeld));
	}
}

MfG Lacritz
 

diggaa1984

Top Contributor
Wäre gut gewesen, den Fehler auch zu beschreiben, oder eine Ausgabe anzuhängen, aber ok:

Folgendes:
Java:
while (counter <= wuerfe) {
    wurfeins = rollDice();
    wurfzwei = rollDice();
    arrayFeld[wurfeins][wurfzwei] = +1;
    counter++;        
}

  • counter <= wuerfe
    Hier würfelst du immer einmal mehr als angegeben, da counter mit 0 startet.
    counter = 0 und wuerfe = 1, würde diese Schleife 2x ausführen
  • arrayFeld[wurfeins][wurfzwei] = +1;
    Hier schreibst du immer nur eine 1 an die entsprechende Stelle. Richtig wäre zB.
    Code:
    += 1;
    , statt
    Code:
    = +1;
    Weiterhin arbeitest du eventuell mit falschen Indizes, das habe ich jetzt nicht genauer überprüft. Aber angenommen, das du eine 6 Würfelst, dann greifst du eventuell auf den 6. Index zu, welcher aber nicht existiert, da dein Feld nur 6 Einträge hat (0-5).

Welche Fehler konnten damit gelöst werden?
 
Zuletzt bearbeitet:

Lacritz

Mitglied
Danke für die Schnelle Hilfe!


Java:
import java.util.Arrays;

import javax.swing.JOptionPane;

public class zaehlenvondoppelwuerfen {

	public static int rollDice() {
		return (int) Math.floor(Math.random() * 6 + 1);
	}

	static int[][] arrayFeld = new int[6][6];
	static int wuerfe;

	static int[][] fillArray(int wuerfe) {

		int counter = 1;
		int wurfeins;
		int wurfzwei;
		while (counter <= wuerfe) {
			wurfeins = rollDice()-1;
			wurfzwei = rollDice()-1;

			arrayFeld[wurfeins][wurfzwei] ++;
			counter++;
		}
		return arrayFeld;
	}

	public static void main(String[] args) {
		wuerfe = Integer.parseInt(JOptionPane
				.showInputDialog("Anzahl ihrer Wuerfe="));
		arrayFeld = new int[6][6];
		arrayFeld = fillArray(wuerfe);
		System.out.print(Arrays.toString(arrayFeld));
	}
}

Hab den Code mal umgeändert , als ausgabe (Bei anzahl der Wuerfe=1000) kommt folgendes raus [[I@2f1050d, [I@1d8299fd, [I@694bc02d, [I@6c36005c, [I@4d51cf84, [I@360f0ac4] - was für mich keinen Sinn macht.

MfG Lacritz
 

diggaa1984

Top Contributor
Macht sinn, weil du das Array so nicht ausgeben kannst.
Du gibst quasi für alle Zeilen die Spalten-Arrays aus und das ist per default nur der Hash des Arrays.

Du musst schrittweise mit einer Schleife die Elemente ausgeben, anders ist das bei Listen, die überschreiben die toString entsprechend.

[EDIT]ah ok, das mit den wuerfen war korrigiert, nicht gesehen :)[/EDIT]
 
Zuletzt bearbeitet:

Ikaron

Bekanntes Mitglied
Der Fehler ist nur ein Kleiner. Du schreibst:
[c]arrayFeld[wurfeins][wurfzwei] = +1;[/c]
Das Plus gehört noch zu der eins dazu, ist also das gleiche wie:
[c]arrayFeld[wurfeins][wurfzwei] = 1;[/c]
=> Du setzt nach einem Wurf den Wert auf eins, anstatt ihn um eins zu erhöhen. Dies ginge mit +=
[c]arrayFeld[wurfeins][wurfzwei] += 1;[/c]

Ach ja, und was die Ausgaben betrifft, hat mein Vorninja recht. :D

Es wurde schon alles gesagt. Ich sollte die Seite vor dem Absenden noch mal neu laden. :D
 
Zuletzt bearbeitet:

Lacritz

Mitglied
für wuerfe=1 kommt "[[I@2f1050d, [I@1d8299fd, [I@694bc02d, [I@6c36005c, [I@4d51cf84, [I@360f0ac4]"

Wie wäre würde ich denn eine korrekte Ausgabe schreiben?
Gibt es eigentlich eine Homepage wie Self.HTML auch für java?

MfG Lacritz
 

diggaa1984

Top Contributor
Java:
for (int i=0; i<arrayFeld.length; i++) {
    for (int j=0; j< arrayFeld[i].length; j++) {
        System.....
    }
}

So ginge das.
Zeilenumbruch darfst selber noch einfügen :)
 
Zuletzt bearbeitet:

Lacritz

Mitglied
Java:
	public static void main(String[] args) {
		wuerfe = Integer.parseInt(JOptionPane
				.showInputDialog("Anzahl ihrer Wuerfe="));
		arrayFeld = new int[6][6];
		arrayFeld = fillArray(wuerfe);
		for (int i = 0; i < arrayFeld.length; i++) {
			for (int j = 0; j < arrayFeld[i].length; j++)

				System.out.println(Arrays.toString(arrayFeld));
		}
	}
}

so wäre es dann , Ausgabe ist jedoch diesmal :[[I@694bc02d, [I@6c36005c, [I@4d51cf84, [I@360f0ac4, [I@158be596, [I@138de5e7]
[[I@694bc02d, [I@6c36005c, [I@4d51cf84, [I@360f0ac4, [I@158be596, [I@138de5e7]
[[I@694bc02d, [I@6c36005c, [I@4d51cf84, [I@360f0ac4, [I@158be596, [I@138de5e7]
[[I@694bc02d, [I@6c36005c, [I@4d51cf84, [I@360f0ac4, [I@158be596, [I@138de5e7]
[[I@694bc02d, [I@6c36005c, [I@4d51cf84, [I@360f0ac4, [I@158be596, [I@138de5e7]
[[I@694bc02d, [I@6c36005c, [I@4d51cf84, [I@360f0ac4, [I@158be596, [I@138de5e7]
[[I@694bc02d, [I@6c36005c, [I@4d51cf84, [I@360f0ac4, [I@158be596, [I@138de5e7]
[[I@694bc02d, [I@6c36005c, [I@4d51cf84, [I@360f0ac4, [I@158be596, [I@138de5e7]
[[I@694bc02d, [I@6c36005c, [I@4d51cf84, [I@360f0ac4, [I@158be596, [I@138de5e7]
[[I@694bc02d, [I@6c36005c, [I@4d51cf84, [I@360f0ac4, [I@158be596, [I@138de5e7]
[[I@694bc02d, [I@6c36005c, [I@4d51cf84, [I@360f0ac4, [I@158be596, [I@138de5e7]
[[I@694bc02d, [I@6c36005c, [I@4d51cf84, [I@360f0ac4, [I@158be596, [I@138de5e7]
[[I@694bc02d, [I@6c36005c, [I@4d51cf84, [I@360f0ac4, [I@158be596, [I@138de5e7]
[[I@694bc02d, [I@6c36005c, [I@4d51cf84, [I@360f0ac4, [I@158be596, [I@138de5e7]
[[I@694bc02d, [I@6c36005c, [I@4d51cf84, [I@360f0ac4, [I@158be596, [I@138de5e7]
[[I@694bc02d, [I@6c36005c, [I@4d51cf84, [I@360f0ac4, [I@158be596, [I@138de5e7]
[[I@694bc02d, [I@6c36005c, [I@4d51cf84, [I@360f0ac4, [I@158be596, [I@138de5e7]
[[I@694bc02d, [I@6c36005c, [I@4d51cf84, [I@360f0ac4, [I@158be596, [I@138de5e7]
[[I@694bc02d, [I@6c36005c, [I@4d51cf84, [I@360f0ac4, [I@158be596, [I@138de5e7]
[[I@694bc02d, [I@6c36005c, [I@4d51cf84, [I@360f0ac4, [I@158be596, [I@138de5e7]
[[I@694bc02d, [I@6c36005c, [I@4d51cf84, [I@360f0ac4, [I@158be596, [I@138de5e7]
[[I@694bc02d, [I@6c36005c, [I@4d51cf84, [I@360f0ac4, [I@158be596, [I@138de5e7]
[[I@694bc02d, [I@6c36005c, [I@4d51cf84, [I@360f0ac4, [I@158be596, [I@138de5e7]
[[I@694bc02d, [I@6c36005c, [I@4d51cf84, [I@360f0ac4, [I@158be596, [I@138de5e7]
[[I@694bc02d, [I@6c36005c, [I@4d51cf84, [I@360f0ac4, [I@158be596, [I@138de5e7]
[[I@694bc02d, [I@6c36005c, [I@4d51cf84, [I@360f0ac4, [I@158be596, [I@138de5e7]
[[I@694bc02d, [I@6c36005c, [I@4d51cf84, [I@360f0ac4, [I@158be596, [I@138de5e7]
[[I@694bc02d, [I@6c36005c, [I@4d51cf84, [I@360f0ac4, [I@158be596, [I@138de5e7]
[[I@694bc02d, [I@6c36005c, [I@4d51cf84, [I@360f0ac4, [I@158be596, [I@138de5e7]
[[I@694bc02d, [I@6c36005c, [I@4d51cf84, [I@360f0ac4, [I@158be596, [I@138de5e7]
[[I@694bc02d, [I@6c36005c, [I@4d51cf84, [I@360f0ac4, [I@158be596, [I@138de5e7]
[[I@694bc02d, [I@6c36005c, [I@4d51cf84, [I@360f0ac4, [I@158be596, [I@138de5e7]
[[I@694bc02d, [I@6c36005c, [I@4d51cf84, [I@360f0ac4, [I@158be596, [I@138de5e7]
[[I@694bc02d, [I@6c36005c, [I@4d51cf84, [I@360f0ac4, [I@158be596, [I@138de5e7]
[[I@694bc02d, [I@6c36005c, [I@4d51cf84, [I@360f0ac4, [I@158be596, [I@138de5e7]
[[I@694bc02d, [I@6c36005c, [I@4d51cf84, [I@360f0ac4, [I@158be596, [I@138de5e7]

Ich weiß nichtmal woher die werten kommen , noch woher soviele Spalten / Zeilen kommen, sollten doch eigentlich nur 6x6 sein?
 

rme

Top Contributor
Du gibst 36 mal das ganze arrayFeld aus, statt die jeweis interessante Zelle ;)

Edit: Etwas bearbeitet, um nicht zu viel zu verraten :)
 
Zuletzt bearbeitet:

diggaa1984

Top Contributor
Ich wollte dir nicht alle verraten.
Die innerste Schleife läuft bei einem 6*6 Array insgesamt 36 mal!
Was du ausgibst ist jeweils das was du vorher schon ausgegeben hattest.

Was du brauchst ist:
Ausgabe der AKTUELLEN ZELLE in der innersten Schleife ohne Zeilenumbruch, eventuell ein Komma oder so rein, als Trennzeichen.
Und Einfügen eines Zeilenumbruchs, an passender Stelle.

[EDIT]Ach mist, jetzt wurde es verraten :D[/EDIT]
 
Zuletzt bearbeitet:

Lacritz

Mitglied
Ist mein zweites Programm mit Arrays , leider heißt es bei uns an der Uni meist Zuerst wird Programmiert , danach bekommt man das Wissen vermitelt.

Java:
	for (int i = 0; i < arrayFeld.length; i++) {
			for (int j = 0; j < arrayFeld[i].length; j++)

				System.out.println(Arrays.toString(arrayFeld[j]));

Ausgabe macht mehr sinn , ist jedoch zu lang für 1000:

[30, 27, 29, 33, 30, 33]
[23, 19, 31, 32, 21, 35]
[26, 22, 29, 22, 28, 19]
[36, 31, 36, 15, 21, 36]
[22, 29, 30, 31, 21, 28]
[22, 27, 31, 33, 25, 37]
[30, 27, 29, 33, 30, 33]
[23, 19, 31, 32, 21, 35]
[26, 22, 29, 22, 28, 19]
[36, 31, 36, 15, 21, 36]
[22, 29, 30, 31, 21, 28]
[22, 27, 31, 33, 25, 37]
[30, 27, 29, 33, 30, 33]
[23, 19, 31, 32, 21, 35]
[26, 22, 29, 22, 28, 19]
[36, 31, 36, 15, 21, 36]
[22, 29, 30, 31, 21, 28]
[22, 27, 31, 33, 25, 37]
[30, 27, 29, 33, 30, 33]
[23, 19, 31, 32, 21, 35]
[26, 22, 29, 22, 28, 19]
[36, 31, 36, 15, 21, 36]
[22, 29, 30, 31, 21, 28]
[22, 27, 31, 33, 25, 37]
[30, 27, 29, 33, 30, 33]
[23, 19, 31, 32, 21, 35]
[26, 22, 29, 22, 28, 19]
[36, 31, 36, 15, 21, 36]
[22, 29, 30, 31, 21, 28]
[22, 27, 31, 33, 25, 37]
[30, 27, 29, 33, 30, 33]
[23, 19, 31, 32, 21, 35]
[26, 22, 29, 22, 28, 19]
[36, 31, 36, 15, 21, 36]
[22, 29, 30, 31, 21, 28]
[22, 27, 31, 33, 25, 37]
 
Zuletzt bearbeitet:

diggaa1984

Top Contributor
Achso, in dem Fall nimm die J-Schleife raus und schreibe die Ausgabe in die I-Schleife (und ersetze arrayFeld[j] mit arrayFeld)

Und, lerne die Schleifen-Konstrukte zu deuten! :)
Dann ergibt auch die lange Ausgabe für dich Sinn.
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
onlyxlia Anzahl Random Zahlen mit Scanner abfragen und in Array speichern Java Basics - Anfänger-Themen 10
A CSv.Datei einlesen und die werte in zweidemosional Int Array speichern Java Basics - Anfänger-Themen 9
S Eine Variable in einem Array speichern Java Basics - Anfänger-Themen 5
J Problem mit einer Methode, die beliebig viele Objekte in Array speichern soll Java Basics - Anfänger-Themen 6
M Objekte in Array speichern und ausgeben Java Basics - Anfänger-Themen 17
H Objekt im Array speichern Java Basics - Anfänger-Themen 2
L Nur Bestimmte Werte aus einem Array in ein anderes Speichern Java Basics - Anfänger-Themen 11
S Zweidimensionales Array in ein eindimensionales Array speichern Java Basics - Anfänger-Themen 6
C ResultSet in Array speichern Java Basics - Anfänger-Themen 5
S Byte-Array kann chars speichern? Java Basics - Anfänger-Themen 3
D Werte aus einem BinärBaum in einem Array speichern Java Basics - Anfänger-Themen 1
L Kommandozeileneinträge in Array speichern Java Basics - Anfänger-Themen 4
G Benutzereingaben durch Zeilenumbruch trennen und in Array individueller Größe speichern Java Basics - Anfänger-Themen 20
R Objekte aus Array als String + kommasepariert speichern Java Basics - Anfänger-Themen 12
void19 Methoden Binärbaum Inorder Traversierung in Array speichern Java Basics - Anfänger-Themen 1
C Erste Schritte ArrayIndexOutOfBoundsException beim Speichern im Array Java Basics - Anfänger-Themen 2
M Wie kann ich im JAVA-GUI im Textfeld ein Array speichern Java Basics - Anfänger-Themen 4
M Int und Double in Array speichern Java Basics - Anfänger-Themen 1
M Speichern von Werten in Array Java Basics - Anfänger-Themen 1
F Zahlen aus Datei einlesen und in Array speichern Java Basics - Anfänger-Themen 2
C Zeilen aus einer Datei in Array speichern Java Basics - Anfänger-Themen 4
K Eingabe in Array speichern und Ausgeben Java Basics - Anfänger-Themen 9
J Methoden Binärbaum, Traversierung in Array speichern Java Basics - Anfänger-Themen 18
L Graphen: Anzahl Knoten // Knoten in Array speichern Java Basics - Anfänger-Themen 4
J Elemente in Array speichern, löschen, ... Java Basics - Anfänger-Themen 3
B String in Array speichern Java Basics - Anfänger-Themen 4
K Gescanntes in Array speichern Java Basics - Anfänger-Themen 14
A .txt Datei in einem Array speichern Java Basics - Anfänger-Themen 1
U Array werte speichern und für berechnungen nutzen Java Basics - Anfänger-Themen 4
T Lotto Zahlen in Array speichern Java Basics - Anfänger-Themen 2
I {year}{month}{day} in Array speichern Java Basics - Anfänger-Themen 5
N Probleme bei Speicherung eines Integer-Array in Datei speichern Java Basics - Anfänger-Themen 3
B String auslesen und Stellen im Array speichern Java Basics - Anfänger-Themen 1
C Array kopieren und nur bestimmte Werte speichern Java Basics - Anfänger-Themen 6
G Erste Schritte Textdatei einlesen und in Array speichern Java Basics - Anfänger-Themen 5
P Array in Vector speichern Java Basics - Anfänger-Themen 2
D neue public static class variablen in array speichern? Java Basics - Anfänger-Themen 6
J char-Array rückwärts ausgeben und in neues Char-Array speichern Java Basics - Anfänger-Themen 3
F Objekte in einem Array speichern Java Basics - Anfänger-Themen 1
C Mehrfach Array "speichern" Java Basics - Anfänger-Themen 9
B Verschiedene Objekte in 2 dimensionalem Array speichern Java Basics - Anfänger-Themen 10
A daten vom 1d array in 2d matrix speichern Java Basics - Anfänger-Themen 3
C Array - Werte speichern und ausgeben Java Basics - Anfänger-Themen 5
W ProcessBuilder InputStream in Array speichern Java Basics - Anfänger-Themen 3
H Zeichenketten einlesen und dann in Array speichern Java Basics - Anfänger-Themen 6
Todesbote Int Array mit Hibernate in Datenbank speichern. Java Basics - Anfänger-Themen 2
L Termin in Array speichern/laden Java Basics - Anfänger-Themen 21
V Array ermitteln - in Quellcode speichern Java Basics - Anfänger-Themen 15
D Textdatei in geschachtelte Array speichern Java Basics - Anfänger-Themen 17
J Speichern von Würfelwürfen in einem Array Java Basics - Anfänger-Themen 5
N Arrays in Array Speichern Java Basics - Anfänger-Themen 10
T Zufallserzeugung mit math.random und speichern in array Java Basics - Anfänger-Themen 29
D Char Array ab bestimmter Stelle in neuem Speichern Java Basics - Anfänger-Themen 13
Junb String in Array speichern Java Basics - Anfänger-Themen 4
D String array in Datei speichern Java Basics - Anfänger-Themen 3
E Erste Schritte Verzeichnis auslesen, Dateinamen in Array speichern :-( Java Basics - Anfänger-Themen 7
T Zahlen in Array speichern und ausgeben Java Basics - Anfänger-Themen 14
A Daten speichern und wieder in ein Array laden Java Basics - Anfänger-Themen 4
M Eingabe in Array speichern Java Basics - Anfänger-Themen 1
D werte in array speichern Java Basics - Anfänger-Themen 26
c_sidi90 Array in einer txt Datei speichern Java Basics - Anfänger-Themen 11
K zufallszahlen in Array Speichern = Nullpointer exception Java Basics - Anfänger-Themen 24
S Zahlen in Array speichern und addieren Java Basics - Anfänger-Themen 4
J Array Speichern Java Basics - Anfänger-Themen 6
P Objekte im Array speichern und auf den Inhalt zugreifen ? Java Basics - Anfänger-Themen 4
D Array speichern und wieder aufrufen Java Basics - Anfänger-Themen 6
S Datentypen Array in Textdatei speichern und auslesen Java Basics - Anfänger-Themen 16
M JPanel in Array speichern?! Java Basics - Anfänger-Themen 3
E Einlesen einer int und speichern in einem Array Java Basics - Anfänger-Themen 7
B Daten in mehrdimensionalem Array, speichern, loeschen, aendern und abrufen Java Basics - Anfänger-Themen 2
K ArrayList in Array Speichern Java Basics - Anfänger-Themen 6
S Unbekannte Daten einlesen, speichern und in einem byte Array speichern Java Basics - Anfänger-Themen 3
S Char Array Werte in short variablen speichern Java Basics - Anfänger-Themen 4
M XML-Elemente in Array speichern Java Basics - Anfänger-Themen 26
S Aus Datei lesen und im Array speichern Java Basics - Anfänger-Themen 2
J Datei lesen und in Array speichern Java Basics - Anfänger-Themen 5
X Errechte Werte automatisch in einem Array speichern Java Basics - Anfänger-Themen 11
J Byte-Array als Hex-Datei speichern? Java Basics - Anfänger-Themen 9
J Objekt-name in Array speichern Java Basics - Anfänger-Themen 12
C Bäume in Java. Knoten in Array speichern Java Basics - Anfänger-Themen 3
H Array + StringBuilder in eine Textdatei speichern.laden. Java Basics - Anfänger-Themen 7
M Aus .txt Datei Daten in Array speichern Java Basics - Anfänger-Themen 3
B String-Array in Datei speichern und wieder auslesen Java Basics - Anfänger-Themen 3
P InputStream in Byte-Array speichern Java Basics - Anfänger-Themen 2
U byte array in datei 'dumpen' / speichern Java Basics - Anfänger-Themen 2
E Konto ins Array speichern! Java Basics - Anfänger-Themen 4
F Leerzeichen in Integer Array speichern Java Basics - Anfänger-Themen 7
A Zahlenkombination in Array speichern Java Basics - Anfänger-Themen 14
T Objektdaten sinnvoll in Array Speichern Java Basics - Anfänger-Themen 20
G Rekursion Rückgabewerte in Array speichern Java Basics - Anfänger-Themen 12
L Objekte im Array speichern Java Basics - Anfänger-Themen 3
C Warum funktioniert dieses Speichern in Array nicht? Java Basics - Anfänger-Themen 4
G CSV auslesen und Zeilen in Array speichern Java Basics - Anfänger-Themen 13
S Komplette Datei in Array speichern Java Basics - Anfänger-Themen 10
M Datei einlesen & in Array speichern Java Basics - Anfänger-Themen 4
H Codetabelle Einlesen und in Array speichern Java Basics - Anfänger-Themen 1
G Byte-Array Infos speichern Java Basics - Anfänger-Themen 14
S Einlesen einer Datei und ins Array speichern Java Basics - Anfänger-Themen 11
T Variabel großes String-Array in ein String speichern Java Basics - Anfänger-Themen 3
P String aus Zahlen auslesen und in einem Array speichern Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben