Hallo, folgendes Programm mischt Karten. Die Kartenmischmethode wäre mit Sicherheit eleganter hinzukriegen, aber ich bin ja Anfänger in Java. Der Code selber funktioniert aber und nachdem die Karten gemischt wurden, soll es drei Möglichkeiten geben:
1. Taste 1 drücken plus Enter: nochmal
2. Taste 2 drücken plus Enter: beenden
3. Ansonsten Fehlerausgabe "Eingabefehler".
Der Haken entsteht dann nach einem Eingabefehler, denn dort bräuchte man einen Sprungbefehl zurück zu Zeile 95, um nochmal die Chance haben zu können, die Tasten 1 oder 0 bedienen zu können. Ich bin gespannt, wie man in Java aus dem Dilemma raus kommen soll. Gegen Sprungmarken hatte ich auch noch nie was. Danke für Info.
1. Taste 1 drücken plus Enter: nochmal
2. Taste 2 drücken plus Enter: beenden
3. Ansonsten Fehlerausgabe "Eingabefehler".
Der Haken entsteht dann nach einem Eingabefehler, denn dort bräuchte man einen Sprungbefehl zurück zu Zeile 95, um nochmal die Chance haben zu können, die Tasten 1 oder 0 bedienen zu können. Ich bin gespannt, wie man in Java aus dem Dilemma raus kommen soll. Gegen Sprungmarken hatte ich auch noch nie was. Danke für Info.
Java:
import Prog1Tools.IOTools;
import java.util.Random;
public class KartenMischen
{
public static void main (String[] args)
{
int i = 0;
int var,z0,z1,z2,z3,z4,z5,z6,z7;
var = 8;//Anzahl Karten
z0 = 0;
z1 = 0;
z2 = 0;
z3 = 0;
z4 = 0;
z5 = 0;
z6 = 0;
z7 = 0;
String[] bild = {"Tisch","Tisch","Stuhl","Stuhl","Couch","Couch","Schrank","Schrank"};
String[] karte = new String[var];
for (i=0; i<var; i++)
karte[i] = "";
i = 0;
boolean nochmal = true;
while (nochmal == true)
{
i = 0;
z0 = zufall();
z1 = zufall();
while (z1 == z0)
{
z1 = zufall();
}
z2 = zufall();
while (z2 == z0 | z2 == z1)
{
z2 = zufall();
}
z3 = zufall();
while (z3 == z0 | z3 == z1 | z3 == z2)
{
z3 = zufall();
}
z4 = zufall();
while (z4 == z0 | z4 == z1 | z4 == z2 | z4 == z3)
{
z4 = zufall();
}
z5 = zufall();
while (z5 == z0 | z5 == z1 | z5 == z2 | z5 == z3 | z5 == z4)
{
z5 = zufall();
}
z6 = zufall();
while (z6 == z0 | z6 == z1 | z6 == z2 | z6 == z3 | z6 == z4 | z6 == z5)
{
z6 = zufall();
}
z7 = zufall();
while (z7 == z0 | z7 == z1 | z7 == z2 | z7 == z3 | z7 == z4 | z7 == z5 | z7 == z6)
{
z7 = zufall();
}
karte[i] = bild[z0]; i += 1;//zufällige Bilderreihenfolge Karten 1-var zuweisen
karte[i] = bild[z1]; i += 1;
karte[i] = bild[z2]; i += 1;
karte[i] = bild[z3]; i += 1;
karte[i] = bild[z4]; i += 1;
karte[i] = bild[z5]; i += 1;
karte[i] = bild[z6]; i += 1;
karte[i] = bild[z7]; i += 1;
if (i == var)
{
i = 0;
for (i=0; i<var; i++)
System.out.println("Karte " + (i+1) + " = " + karte[i]);
}
/*String agt0 = karte[0];
String agt1 = karte[1];
if (agt0 == agt1)
{
System.out.println("Karten 1 und 2 sind gleich");
}
else
{
System.out.println("Karten 1 und 2 sind unterschiedlich");
}*/
System.out.println('\n' + "Eingabe 1 plus Enter = nochmal");
System.out.println("Eingabe 0 plus Enter = beenden");
int oncemore = IOTools.readInteger("");
switch(oncemore)
{
case 0:
nochmal = false;
System.out.println("Programm beendet");
break;
case 1:
break;
default:
System.out.println("Eingabefehler");
break;
}
}
}
public static int zufall()
{
Random rand = new Random();
int zuf = rand.nextInt(8);
return zuf;
}
}
Zuletzt bearbeitet: