G
Guest
Gast
Hallo!
Derzeit bin ich am lernen für eine Java Klausur und habe da n kleines Problem... eine Übungsaufgabe ist nicht direkt ein Memory Spiel zu entwickeln, sondern das Austeilen der Karten zu simulieren... Nun habe ich auch eine Musterlösung, jedoch hatte ich auch einen eigenen Ansatz und möchte den nicht unbedingt aufgeben! *g*
Ziel ist es zumindest, das Zahlenpärchen erstellt werden in einem 2-dimensionalen Array, welches zufällig gefüllt werden soll... also d.h. wenn man das Programm mehrmals aufruft, soll die Ausgabe unterschiedlich sein und jede Ziffer mit derselben Wahrscheinlichkeit an jeder Position des Array stehen!
Einmal ein Beispiel wie es aussehen soll:
Bitte Hoehe des Spielfeldes eingeben: 3
Bitte Breite des Spielfeldes eingeben: 6
Inhalt des Spielfeldes:
0 1 6 2 3 6
3 1 0 2 8 8
4 4 7 7 5 5
... naja klappt auch alles recht gut, nur ist es bei mir so, das die 0en immer die letzten beiden sind...
Bsp:
1 6 2 3 6 3
1 2 8 8 4 4
7 7 5 5 0 0
Das ist mein Quellcode:
Ich wäre für jeden Rat und Verbesserungsvorschlag sehr dankbar!
Gruß, Marco
Derzeit bin ich am lernen für eine Java Klausur und habe da n kleines Problem... eine Übungsaufgabe ist nicht direkt ein Memory Spiel zu entwickeln, sondern das Austeilen der Karten zu simulieren... Nun habe ich auch eine Musterlösung, jedoch hatte ich auch einen eigenen Ansatz und möchte den nicht unbedingt aufgeben! *g*
Ziel ist es zumindest, das Zahlenpärchen erstellt werden in einem 2-dimensionalen Array, welches zufällig gefüllt werden soll... also d.h. wenn man das Programm mehrmals aufruft, soll die Ausgabe unterschiedlich sein und jede Ziffer mit derselben Wahrscheinlichkeit an jeder Position des Array stehen!
Einmal ein Beispiel wie es aussehen soll:
Bitte Hoehe des Spielfeldes eingeben: 3
Bitte Breite des Spielfeldes eingeben: 6
Inhalt des Spielfeldes:
0 1 6 2 3 6
3 1 0 2 8 8
4 4 7 7 5 5
... naja klappt auch alles recht gut, nur ist es bei mir so, das die 0en immer die letzten beiden sind...
Bsp:
1 6 2 3 6 3
1 2 8 8 4 4
7 7 5 5 0 0
Das ist mein Quellcode:
Code:
import java.io.*;
class Memory {
public static void main(String args[]) throws IOException{
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
System.out.print("Bitte Hoehe des Spielfeldes eingeben: );
int n = Integer.parseInt(in.readLine());
System.out.print("Bitte Breite des Spielfeldes eingeben ");
int m = Integer.parseInt(in.readLine());
showField(fillField(n, m));
}
static int[][] fillField(int n, int m) {
int[][] memory = new int[n][m];
for(int i = 0; i < n; ++i) {
for(int j = 0; j < m; ++j) {
memory[i][j] = (int) (Math.ceil(((Math.random() * ((n*m) / 2)))));
if(checkValue(memory, i, j)) {
--j;
}
}
}
return memory;
}
static void showField(int[][] memory) {
for(int i = 0; i < memory.length; ++i) {
for(int j = 0; j < memory[0].length; ++j) {
System.out.print(memory[i][j] + " ");
}
System.out.println();
}
}
static boolean checkValue(int[][] a, int i, int j) {
int h = 0;
boolean[] x = new boolean[3];
for(int k = 0; k < a.length; ++k) {
for(int l = 0; l < a[k].length; ++l) {
if(a[i][j] == a[k][l]) {
x[h] = true;
h++;
}
if(h == 3) {
boolean b = true;
return b;
}
}
}
boolean b = false;
return b;
}
}
Ich wäre für jeden Rat und Verbesserungsvorschlag sehr dankbar!
Gruß, Marco
Code: