Schönen guten Tag,
Ich möchte ein simples Kartenspiel in Java implementieren. Es funktioniert wie folgt:
Man hat 9 Karten mit den Zahlen 1 bis 9 aufgedeckt auf einem Tisch liegen. Nun würfelt man mit zwei Würfeln eine Augensumme. Man muss Nun entprechend eine oder zwei Karten umlegen, zum Beispiel: Man würfelt eine 5 und 4 = 9. Jetzt kann man entweder die 7 und 2, 1 und 8 oder 9 umlegen. Umgelegte Karten dürfen in der nächsten Runde nicht verwendet werden. Falls man keine Karten entsprechend mehr umlegen kann werden die offenen Karten als Bonuspunkte notiert. Ziel ist es möglichst viele Punkte zu erreichen.
Mein Programm soll jetzt den optimalen Zug angeben, also welche Karten ich am besten umlegen sollte, damit ich am Ende eine maximale Punktzahl erreiche.
Bisher habe ich folgens programmiert:
Mein Problem liegt beim Backtracking. Was muss ich der Backtrackingmethode für Parameter übergeben? Und wie soll Backtracking eine Lösung finden wenn man gar nicht die nächsten Züge sprich Augensummen kennt?
Mit freundlichen Grüßen
randomnick
Ich möchte ein simples Kartenspiel in Java implementieren. Es funktioniert wie folgt:
Man hat 9 Karten mit den Zahlen 1 bis 9 aufgedeckt auf einem Tisch liegen. Nun würfelt man mit zwei Würfeln eine Augensumme. Man muss Nun entprechend eine oder zwei Karten umlegen, zum Beispiel: Man würfelt eine 5 und 4 = 9. Jetzt kann man entweder die 7 und 2, 1 und 8 oder 9 umlegen. Umgelegte Karten dürfen in der nächsten Runde nicht verwendet werden. Falls man keine Karten entsprechend mehr umlegen kann werden die offenen Karten als Bonuspunkte notiert. Ziel ist es möglichst viele Punkte zu erreichen.
Mein Programm soll jetzt den optimalen Zug angeben, also welche Karten ich am besten umlegen sollte, damit ich am Ende eine maximale Punktzahl erreiche.
Bisher habe ich folgens programmiert:
Java:
package klassen;
public class Karten {
private boolean[] karten = new boolean[8];
private int summenkonto = 0;
// Konstruktor mit Initialisierung
public Karten() {
for (int i = 0; i < karten.length; i++) {
karten[i] = true;
}
}
public int getSummenkonto() {
return summenkonto;
}
public void neuerWurf() {
summenkonto = (int) (Math.random() * 6 + 1);
summenkonto += (int) (Math.random() * 6 + 1);
}
//Backtracking..
}
Mein Problem liegt beim Backtracking. Was muss ich der Backtrackingmethode für Parameter übergeben? Und wie soll Backtracking eine Lösung finden wenn man gar nicht die nächsten Züge sprich Augensummen kennt?
Mit freundlichen Grüßen
randomnick
Zuletzt bearbeitet von einem Moderator: