Come fare un gioco Pig in pseudocodice

March 23

Come fare un gioco Pig in pseudocodice


Il gioco dei dadi, "Pig", ha regole che sono semplici da descrivere, ma la progettazione del pseudocodice per un programma in cui il computer gioca con la strategia ottimale è un puzzle apparentemente difficile. Per giocare a "Pig", i giocatori, a turno, a rotazione un singolo die. Su qualsiasi rotolo diverso da 1, il numero sul dado viene aggiunto al punteggio turno del giocatore. Con un risultato di 1, il turno del giocatore termina senza punteggio aggiunto al suo totale. Dopo ogni tiro, il giocatore può decidere di terminare il suo turno e aggiungere il suo punteggio turno per il suo punteggio totale. Il primo giocatore a raggiungere 100 punti vince.

istruzione

1 Progettare una funzione che permette un giocatore prende una svolta scegliendo di rotolare o fermarsi. Il pseudocodice dovrebbe seguire questo processo, anche se è probabile che esprimere in modo più dettagliato:

Funzione: Turn (Player)

Visualizzare TotalScore.Player e TurnScore.Player

Get ingresso

Se il giocatore sceglie di rotolare

numero casuale --generate 1-6

Risultato --se = 1

---- TurnScore.Player = 0

---- Run Turn (NextPlayer)

Risultato --se> 1

---- TurnScore.Player = TurnScore.Player + Risultato

---- Se TotalScore.Player + TurnScore.Player> = 100, giocatore vince

---- Run Turn (Player)

Se il giocatore decide di smettere

--TotalScore.Player = TotalScore.Player + TurnScore.Player

--run Girare (NextPlayer)

2 Calcolare una strategia per il computer da utilizzare quando il giocatore del computer sta valutando se rotolare o interrompere. Una strategia molto di base è quella di avere il computer continuare a tirare fino a quando il suo punteggio volta è superiore a 20, in base alla logica che ogni rotolo ha cinque possibilità su sei di aggiungere una media di 4 punti, quindi fino a raggiungere un punteggio giro di 5 * 4 , la "scommessa" vale la pena. Per perfezionare la strategia, venire con un modo per valutare se vale la pena di spingere passato 20 punti, ad esempio quando il tuo avversario ha 99 punti e si inizia un giro con 78.

3 Progettare una funzione che calcolerà la decisione del giocatore computer. La funzione dovrebbe prendere come variabili ingressi rappresentano il punteggio turno del computer e (se necessario per il calcolo strategico) punteggio totale di entrambi i giocatori e restituire una variabile che rappresenta la scelta di rotolare o fermare dopo l'elaborazione degli ingressi in base alla strategia che hai disegnato. Una modifica di base della strategia "hold fino al 20", per esempio, potrebbe essere simile a questo:

Funzione: Scegliere (TurnScore, OpponentScore)

Se OpponentScore> 80

--Restituisca (Roll)

Altrimenti Se TurnScore <20

--Restituisca (Roll)

Else Return (Stop)