Java Würfelpoker

05/11/2014 18:14 sven12345#1
Ich bin derzeit dabei Würfelpoker in Java zu programieren und bräuchte eine kleine Anregung wie man die Abfrage gestalten könnte, dass erkannt wird das eine Straße gegen ein Pärchen gewinnt oder wenn alle ein Pärchen haben das die höhe der Würfelaugen gewinnt...
Falls jmd. das Spiel nicht kennt:
[Only registered and activated users can see links. Click Here To Register...]
05/11/2014 18:26 Mostey#2
Code:
// check ob jeder Spieler ein Pärchen hat
bool pairMode = true;
foreach(Player player in Game.Players)
{
    // wenn mind. einer kein Pärchen hat, wird die Bedingung unten nie erfüllt
    if(!player.HasPair())
        pairMode = false;
}

// jeder hat ein Pärchen
if(pairMode)
{
    // finde den Spieler mit der höchsten Punktzahl
    Player mostValueablePlayer = new Player();
    foreach(Player player in Game.Players) 
    {
        foreach(Dice dice in player.Dices) // für jeden Würfel den ein Spieler hat
        {
            if(dice.Value > mostValueablePlayer.Dices.Value) // wenn Summe größer als die Gesamtsumme von allen Würfeln des derzeitigen top Spielers -> überschreiben
                mostValueablePlayer = player;
        }
    }
}
Ich war zu faul jetzt jede Spielregel zu beachten, daher musst du das anpassen. Ist sowieso nur Pseudocode.
05/11/2014 19:09 sven12345#3
Ok danke das wäre ja jetzt nur dafür falls zB jeder ein Pärchen oder jeder ein Drilling hätte, wie würde das aussehen wenn man feststellen will das eine Straße höher ist als ein Drilling?
05/11/2014 19:18 Mostey#4
Was verstehst du denn nicht? Ich weiß gerade nicht, worauf du hinauswillst. Schau dir die Bedinungen für eine Straße an und wann eine Straße ein Pärchen besiegt. Das baust du einfach genau so ein, wie ich es in dem Beispiel oben gezeigt habe.

Ich hatte eigentlich gehofft, dass du nur einen kleinen Denkansatz brauchst und nicht direkt den ganzen Code.
05/11/2014 19:24 VisionEP1#5
foreach(Player player in Game.Players)
{
// wenn mind. einer kein Pärchen hat, wird die Bedingung unten nie erfüllt
if(!player.HasPair())
pairMode = false;
}
Gibt schon mail keinen Sinn?
Ich kann auch eine Straße haben ohne ein prächen zu haben.

Baue einfach eine Funktion die Punkte für verschiedene Ergebnisse bringt.
Du übergibst deine n Würfel.
Und deine Funktion prüft von der höchsten(Straße) bis zur schlechtesten Punktzahl(nichts)
durch und gibt halt entsprechend punkte zurück
Pseudocode:
Quote:
int return punkte(wurf){
if(straße)
return 10;
if(drilling)
return 9;
etc
}
Du musst nur noch kleine Funktionen zum prüfen schreiben.
Straße(würfel der Größe nach ordnen und einfach durchgehen)
Paar(jedes element vergleiches etc...)
05/11/2014 19:38 Mostey#6
Quote:
Originally Posted by VisionEP1 View Post
foreach(Player player in Game.Players)
{
// wenn mind. einer kein Pärchen hat, wird die Bedingung unten nie erfüllt
if(!player.HasPair())
pairMode = false;
}
Gibt schon mail keinen Sinn?
Ich kann auch eine Straße haben ohne ein prächen zu haben.

Du solltest dir mein Statement darunter mal genauer durchlesen:

Quote:
Ich war zu faul jetzt jede Spielregel zu beachten, daher musst du das anpassen.
Es ist sein Projekt, er sollte die Spielregeln studieren und nicht wir.
05/11/2014 19:40 sven12345#7
Ja den Ansatz hatte ich jetzt auch, werde es vorerst so machen das ich den bestimmten Bedingungen(pärchen etc.) Punkte zuweise und dann so den Sieger ermittle, danke an alle
@Mostey du hättest mit keinen Programmcode liefern müssen sondern hatte eher an sowas wie von Vision gedacht :)