Java Erkennungsalgorithmus für Straßen in Kniffel

Hallo Community,

ich programmiere gerade das Würfelspiel "Kniffel" oder auch "Yahtzee" in Java nach. Um Punkte in den Zettel (JTable) einzutragen, muss das Programm erst erkennen, dass die gewürfelten Augen das gewünschte Objekt (Dreierpasch, Kniffel, Full House, ...) bilden, und dann die Punktzahl berechnen. Das ist mit bei allen Figuren gelungen, außer bei der kleinen und großen Straße.

Das hier ist der Algorithmus, der die Straßen erkennen können soll:

    public boolean isStreet(int amount, Dice dice1, Dice dice2, Dice dice3,
        Dice dice4, Dice dice5) {
    int count = 1;
    int lastValue = dice1.calcvalue;
    int[] diceValues = new int[] { dice2.calcvalue, dice3.calcvalue,
            dice4.calcvalue, dice5.calcvalue };
    for (int i : diceValues) {

        if (i == (lastValue + 1))
            count++;
        else
            count = 1;

        if (count >= amount)
            return true;
    }
    return false;
}

Zum Code:

der int "amount" ist die Zahl der Würfel in einer Reihe. Bei einer kleinen Straße also 4 und bei einer großen 5.
dice1.calcvalue, dice2.calcvalue, ... sind die Würfelwerte in aufsteigender Reihenfolge.
Ist also dice1.value=4, dice2.value=2, dice3.value=5, dice4.value=5 und dice5.value=4, dann ist dice1.calcvalue=2, dice2.calcvalue=4, dice3.calcvalue=4, dice4.calcvalue=5 und dice5.calcvalue=5.
In der if.Bedingung ganz unten, wo das return true; druntersteht, hat GF aus dem >-Zeichen irgendwie dieses &gt-Zeug gemacht. Ein > kann man wohl nicht in ein GF-Codebeispiel schreiben.

Das Problem: Mein Programm liefert sowohl bei amount = 4 (kl. Str.) als auch amount = 5 (gr. Str.) ein false. Das Feld ist nicht mehr editierbar, aber die Punktzahl = 0. Kommt also einem "Streichen" gleich. Wo liegt der Fehler und wie muss der Algorithmus richtig lauten?

Sorry wegen des langen Textes und Danke an alle Coder die es besser können. ;)

programmieren, Java, Kniffel, Algorithmus
Roulette Algorithmus

Guten Tag zusammen,

ich sags schonmal vorweg: Klar, es gab schon die ein oder andere Frage über Algorithmen im Roulette. Da es ein paar Fragen mehr sind, verfasse ich das alles mal in einem Thread.

1.)Gibt es ein Programm, das Algorithmen vom Roulette errechnen kann und wenn ja, welches ist zu empfehlen?

Gehen wir mal von folgender Situation aus: Ich schreibe mir z.B. die letzten 12 gefallenen Zahlen auf. Diese gebe ich dann in mein Programm ein. Der Computer berechnet dann den Algorithmus und ich hab die nächsten fallenden Zahlen.

2.) Kommen die errechneten Zahlen dann auch vor?

Ich meine, der Roulette-Automat generiert die Zahlen ja nicht jedes mal nach Zufall, sondern nach einem bestimmten Algorithmus. Und der kann sich dann ja nicht von meinem Programm und dem Roulette-Automaten unterscheiden oder?

3.) Darf sich ein Roulette-Automat auch "umentscheiden"?

Mir ist neulich ein "Phänomen" aufgefallen, wohlmöglich aber auch eigenes Pech^^ Ich habe eine ganze Zeit mit niedrigem Einsatz "1 Euro" immer richtig getippt. Doch sobald ich den Einsatz in die Höhe ziehe "5 oder 10 Euro" kommt immer genau das Gegenteil. Als wenn der Automat so darauf programmiert ist, ab einem bestimmten Betrag was anderes auszugeben. Wobei das ja dann Betrug wäre und Automaten notariell beglaubigt werden müssen.

Ich bin mir sicher, dass ich mir das alles viel zu einfach vorstelle, da wären dann bestimmt schon mehrere Leute drauf gekommen. Trotzdem interessieren mich dazu mal andere Meinungen.

Mit freundlichem Gruß

Sibi90

Roulette, Programm, Algorithmus

Meistgelesene Fragen zum Thema Algorithmus