@@ -0,0 +1,106 @@ | |||
package ab51_zahlenraetsel; | |||
/** | |||
* variable Liste um Zahlenreihen zu speichern | |||
* | |||
* @author A. Kimmig | |||
* | |||
*/ | |||
public class List { | |||
/** | |||
* Verweis auf den ersten Eintrag bzw. null wenn noch kein | |||
* Eintrag vorhanden ist | |||
*/ | |||
public Node first; | |||
/** | |||
* Fügt eine neue Zahl zur Liste hinzu, indem zuerst ein Node | |||
* mit dieser Zahl erstellt wird und dieser Node an die | |||
* bestehende Liste angehängt wird | |||
* | |||
* @param z Zahl, die in die Liste eingetragen werden soll | |||
*/ | |||
public void hinzufügen(int z) { | |||
// Neue Node erstellen | |||
Node neu = new Node(z, null); | |||
// Hilfsobjekt, um durch die Liste zu gehen | |||
Node zwischen = first; | |||
// Wenn Liste noch leer | |||
if(first == null) { | |||
first = neu; | |||
} else { // ansonsten | |||
while(zwischen.next != null) { | |||
// gehe durch die Liste bis zum Ende | |||
zwischen = zwischen.next; | |||
} | |||
// an letztes Element anhängen | |||
zwischen.next = neu; | |||
} | |||
} | |||
/** | |||
* Gibt die Anzahl der Einträge zurück | |||
* | |||
* @return Anzahl der Einträge | |||
*/ | |||
public int länge() { | |||
// wenn Liste leer ist | |||
if(first == null) { | |||
// gib 0 als Länge zurück | |||
return 0; | |||
} | |||
// Hilfsobjekt, um durch Liste zu gehen | |||
Node zwischen = first; | |||
// Zähl-Variable | |||
int count = 0; | |||
// gehe durch die Liste durch | |||
while(zwischen != null) { | |||
count++; | |||
zwischen = zwischen.next; | |||
} | |||
// gib die gezählte Anzahl zurück | |||
return count; | |||
} | |||
/** | |||
* Entfernt einen Eintrag aus der Liste und gibt die Zahl, | |||
* die in diesem Eintrag stand zurück | |||
* | |||
* @return Zahl, die entfernt wurde. | |||
*/ | |||
public int herausnehmen() { | |||
if(first == null) { | |||
return 0; | |||
} | |||
// erste Zahl der Liste zwischenspeichern | |||
int zahl = first.zahl; | |||
// der erste Eintrag wird "verschoben" | |||
first = first.next; | |||
// die zwischengespeicherte Zahl wird zurückgegeben | |||
return zahl; | |||
} | |||
} | |||
@@ -0,0 +1,33 @@ | |||
package ab51_zahlenraetsel; | |||
/** | |||
* Ein Node repräsentiert einen Eintrag in der Liste. | |||
* | |||
* Er setzt sich zusammen aus einer Zahl und einem | |||
* Verweis auf den nachfolgenden Eintrag | |||
* | |||
* @author A. Kimmig | |||
* | |||
*/ | |||
public class Node { | |||
/** | |||
* Zahl in diesem Eintrag | |||
*/ | |||
public int zahl; | |||
/** | |||
* Verweis auf den nächsten Eintrag | |||
*/ | |||
public Node next; | |||
/** | |||
* Konstruktor | |||
* @param z Zahl, die in diesem Eintrag steht | |||
* @param next Verweis auf den nächsten Eintrag | |||
*/ | |||
public Node(int z, Node next) { | |||
this.zahl = z; | |||
this.next = next; | |||
} | |||
} |
@@ -0,0 +1,41 @@ | |||
package ab51_zahlenraetsel; | |||
import java.util.Scanner; | |||
public class Start { | |||
public static void main(String[] args) { | |||
// erstelle die Liste | |||
List zahlenreihe = new List(); | |||
// erstelle den Scanner, um Zahlen eingeben zu können | |||
Scanner sc = new Scanner(System.in); | |||
// wiederhole immer wieder | |||
while (true) { | |||
// Hilfsobjekt, um durch die Liste zu gehen | |||
Node current = zahlenreihe.first; | |||
// Frage alle bisherigen Zahlen ab... | |||
System.out.println("Gib die bisherigen Zahlen ein:"); | |||
while (current != null) { | |||
System.out.print("Nächste Zahl: "); | |||
int zahl = sc.nextInt(); | |||
// ...und vergleiche sie mit der Liste | |||
if (zahl != current.zahl) { | |||
// wenn falsche Zahl eingegeben wurde | |||
System.out.println("Falsch! Du hast verloren!"); | |||
// brich das ganze Programm ab | |||
return; | |||
} | |||
// ansonsten gehe zur nächsten Zahl | |||
current = current.next; | |||
} | |||
System.out.println("Alles richtig!"); | |||
System.out.print("Bitte neue Zahl eingeben: "); | |||
// füge eine neue Zahl zur Liste hinzu | |||
zahlenreihe.hinzufügen(sc.nextInt()); | |||
System.out.println("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"); | |||
} | |||
} | |||
} |
@@ -2,8 +2,6 @@ package ab51_zahlenreihe; | |||
import java.util.Scanner; | |||
import zahlenraetsel.List; | |||
public class Start { | |||
public static void main(String[] args) { | |||
// ertelle die Liste |