Den terningespil , " Gris," har regler , der er enkle at beskrive, men designe pseudokode for et program , hvor computeren spiller med optimal strategi er en bedragerisk tricky puslespil. At spille " Gris," spillerne skiftes til at kaste en enkelt terning . På hvert kast end 1 , er antallet på terningen tilføjet til spillers tur score. På en rulle på 1, slutter spillers tur med ingen score føjet til hans alt. Efter hvert kast , må spilleren beslutte at afslutte sin tur , og tilføj hans tur score til hans samlede score . Den første spiller til at nå 100 point vinder . Instruktioner
1
Design en funktion, der lader spilleren tage en tur ved at vælge at rulle eller stoppe. Pseudokoden skal følge denne proces , selvom du sandsynligvis vil udtrykke det i mere detaljeret : Hej
Funktion: Turn ( Player)
Display TotalScore.Player og TurnScore.Player
Get input
Hvis spilleren vælger at rulle
- Generer tilfældige tal fra 1 til 6.
- hvis resultatet = 1
---- TurnScore . Player = 0
---- Run Turn ( NextPlayer )
- . hvis resultatet > 1
---- TurnScore Player = TurnScore.Player + resultat
---- Hvis TotalScore.Player + TurnScore.Player > = 100, spiller vinder
---- Run Turn ( Player)
p Hvis spilleren vælger at stoppe
- . TotalScore Player = TotalScore.Player + TurnScore.Player
- Run Turn ( NextPlayer )
2
Beregn en strategi for computeren at bruge , når computeren afspilleren er at vurdere , om at rulle eller stoppe. En meget grundlæggende strategi er at få computeren holde rullende indtil sin tur score er over 20 , er baseret på den logik, at hver rulle har fem chancer i seks for at tilføje et gennemsnit på 4 point , så indtil du når et sving score på 5 * 4 , den "indsats " er umagen værd . At forfine strategien , komme op med en måde at evaluere , når det er værd at skubbe sidste 20 point , som når din modstander har 99 point , og du starter en tur med 78. .
3
design en funktion, der vil beregne computer spillerens beslutning. Funktionen bør tage som input variable repræsenterer computerens tur score og (om nødvendigt i den strategiske beregning ) begge spilleres samlede score og returnere en variabel , der repræsenterer valget til at rulle eller stoppe efter forarbejdning indgangene baseret på den strategi, du har designet . En grundlæggende ændring af " hold indtil 20" -strategi , for eksempel, ser måske sådan ud : Hej
Funktion: Vælg ( TurnScore , OpponentScore )
p Hvis OpponentScore > 80
< p > - Return ( Roll )
Else Hvis TurnScore <20
- Return ( Roll )
Else Return (Stop)
< br >