Irgendwie komme ich bei einer Aufgabe nicht weiter. Muss wohl ziemlicher Mist sein, den ich da gebaut hab.
Die Aufgabe:
Es soll eine vierstellige Zahlenkombination erraten werden. Nach 3 Fehlversuchen wird eine neue Zahlenkombination erstellt, die dann wieder erraten werden soll. Das geht solange, bis die Kombination erraten wurde. Das Ergebnis wird auf der Konsole ausgegeben. (Idee der Aufgabe: Es wird getestet, wie sicher Chipkarten von Geldautomaten sind.)
Hier ist was ich bisher habe:
Die Klasse MeinRandom bedarf keiner Prüfung, da sie fehlerfrei funktioniert.
Er compiliert den ganzen Code zwar, aber ausgegeben wird nur "at ChipkartenTest.<init><ChipkartenTest.java4>" (mehrfach).
Damit kann ich leider nichts anfangen.
Bin ich auf dem richtigen Weg oder kann man die Aufgabe viel besser lösen? Und warum genau geht mein Zeug nicht?
Die Aufgabe:
Es soll eine vierstellige Zahlenkombination erraten werden. Nach 3 Fehlversuchen wird eine neue Zahlenkombination erstellt, die dann wieder erraten werden soll. Das geht solange, bis die Kombination erraten wurde. Das Ergebnis wird auf der Konsole ausgegeben. (Idee der Aufgabe: Es wird getestet, wie sicher Chipkarten von Geldautomaten sind.)
Hier ist was ich bisher habe:
Java:
public class ChipkartenTestMain
{
public static void main (String [] args)
{
ChipkartenTest chipkarte = new ChipkartenTest();
System.out.print(chipkarte.testBisZumErfolg());
}
}
Java:
public class ChipkartenTest
{
MeinRandom meinrandom = new MeinRandom();
ChipkartenTest chipkarte = new ChipkartenTest();
public int einmaligerTest()
{
int i = 0;
boolean zahlNichtErraten = true;
int chipkartenZahl1 = meinrandom.nextInt(1 , 9);
int chipkartenZahl2 = meinrandom.nextInt(1 , 9);
int chipkartenZahl3 = meinrandom.nextInt(1 , 9);
int chipkartenZahl4 = meinrandom.nextInt(1 , 9);
while (zahlNichtErraten && i < 3)
{
int gerateneZahl1 = meinrandom.nextInt(1 , 9);
int gerateneZahl2 = meinrandom.nextInt(1 , 9);
int gerateneZahl3 = meinrandom.nextInt(1 , 9);
int gerateneZahl4 = meinrandom.nextInt(1 , 9);
if (chipkartenZahl1 == gerateneZahl1 && chipkartenZahl2 == gerateneZahl2 && chipkartenZahl3 == gerateneZahl3 && chipkartenZahl4 == gerateneZahl4)
{
zahlNichtErraten = false;
}
else
i++;
}
return i;
}
public int testBisZumErfolg()
{
int j = 0;
while (chipkarte.einmaligerTest() = 3)
{
j++;
}
return j;
}
}
Die Klasse MeinRandom bedarf keiner Prüfung, da sie fehlerfrei funktioniert.
Er compiliert den ganzen Code zwar, aber ausgegeben wird nur "at ChipkartenTest.<init><ChipkartenTest.java4>" (mehrfach).
Damit kann ich leider nichts anfangen.
Bin ich auf dem richtigen Weg oder kann man die Aufgabe viel besser lösen? Und warum genau geht mein Zeug nicht?