Hallo,
ich habe in der Schule eine Aufgabe bekommen, einen Kartentrick zu simuliere. Die Aufgabe findet ihr im Anhang...
Hier mein Java Code:
soweit läuft auch alles richtig bis auf
hier bekomme ich einen Fehler ;(
Danke schonmal im Voraus
ich habe in der Schule eine Aufgabe bekommen, einen Kartentrick zu simuliere. Die Aufgabe findet ihr im Anhang...
Hier mein Java Code:
Java:
public class Kartentrick
{
public static void main(String[] args) {
do {
int[][] karten = null;
karten = fuellen(karten, 0);
ausgeben(karten);
int spalte = TestScannerErweitert.readInt("Spalte der Karte: ");
karten = fuellen(karten,spalte);
ausgeben(karten);
spalte = TestScannerErweitert.readInt("Spalte der Karte: ");
karten = fuellen(karten,spalte);
ausgeben(karten);
spalte = TestScannerErweitert.readInt("Spalte der Karte: ");
} while (Character.toLowerCase(TestScannerErweitert.readChar("Nochmals? (j/n)")) == 'j');
}
/**
* Wenn der Spieler 0 als Spalte eingebit, so werden die Karten der Reihe nach ausgelegt.
* Wenn der Spieler 1 als Spalte eigibt, so werden zuerst die Karten der Spalte 2 ausgelegt, dann die der Spalte 1
* und zum Schluss die der Spalte 3.Wenn der Spieler 2 als Spalte eigibt, so werden zuerst die Karten der Spalte 1
* ausgelegt, dann die der Spalte 2 und zum Schluss die der Spalte 3. Wenn der Spieler 3 als Spalte eigibt,
* so werden zuerst die Karten der Spalte 1 ausgelegt, dann die der Spalte 3 und zum Schluss die der Spalte 2.
* @param karten
* @param spalte
* @return Array der ausgelegten Karten
*/
public static int[][] fuellen(int[][] karten, int spalte) {
int[][] ret = null;
int zahl = 1;
// Spalte wird 0 übergeben
if (spalte == 0) {
ret = new int [7][3];
for (int i = 0; i < 3; i++){
for (int j = 0; j < 7; j++){
ret[j][i] = zahl;
zahl++;
}
}
}
// Spalte wird 2 Ÿbergeben
if (spalte == 2) {
ret = new int[7][3];
int[] tmp = new int [7];
// komme hier nicht weiter
int j = 0;
int k = 0;
for (int i = 0; i < 7; i++) {
if (i == 3 || i == 6 || i == 9)
j++;
ret[j][i] = tmp[i];
j++;
}
// int iergebnis = 0;
// int jergebnis = 0;
// for (int ioriginal = 0; ioriginal < 3; ioriginal++){
// for (int joriginal = 0; joriginal < 7; joriginal++){
// if (iergebnis > 2) {
// iergebnis = 0;
// }
// ret[iergebnis][jergebnis] = karten[ioriginal][joriginal];
// iergebnis = iergebnis +1;
// jergebnis = jergebnis +1;
// }
// }
}
return ret;
}
/**
* Es wird das Array zeilenweise ausgegeben.
* @param karten
*/
public static void ausgeben(int [][] karten) {
for (int i = 0; i < karten.length; i++){
for (int j = 0; j < karten[i].length; j++){
System.out.print(karten[i][j]+" ");
}
System.out.println();
}
}
}
Java:
// Spalte wird 2 Ÿbergeben
if (spalte == 2) {
ret = new int[7][3];
int[] tmp = new int [7];
// komme hier nicht weiter
int j = 0;
int k = 0;
for (int i = 0; i < 7; i++) {
if (i == 3 || i == 6 || i == 9)
j++;
ret[j][i] = tmp[i];
j++;
}
// int iergebnis = 0;
// int jergebnis = 0;
// for (int ioriginal = 0; ioriginal < 3; ioriginal++){
// for (int joriginal = 0; joriginal < 7; joriginal++){
// if (iergebnis > 2) {
// iergebnis = 0;
// }
// ret[iergebnis][jergebnis] = karten[ioriginal][joriginal];
// iergebnis = iergebnis +1;
// jergebnis = jergebnis +1;
// }
// }
Danke schonmal im Voraus