Il gioco dei dadi , " maiale ", ha regole che sono semplici da descrivere , ma la progettazione del pseudocodice di un programma in cui il computer gioca con la strategia ottimale è un puzzle apparentemente difficile. Per giocare a "Pig ", i giocatori lanciano a turno un singolo die . Su ogni rotolo di diverso da 1 , è aggiunto il numero sul dado di segnare il turno del giocatore . Con un risultato di 1 , il turno del giocatore finisce senza un punteggio aggiunto al suo totale . Dopo ogni tiro , il giocatore può decidere di terminare il suo turno e aggiungere il suo punteggio turno al suo punteggio totale. Il primo giocatore a raggiungere 100 punti vince . Istruzioni
1
Progettare una funzione che ti consente un giocatore prende una svolta scegliendo di rotolare o fermarsi. Lo pseudocodice dovrebbe seguire questo processo , anche se è probabile che esprimere in modo più dettagliato :
Funzione: Turn ( Player ) per
display TotalScore.Player e TurnScore.Player
Get ingresso
giocatore sceglie di tirare
- Generare un numero casuale da 1 a 6
- Se Result = 1
---- TurnScore . Player = 0
---- Run Turn ( NextPlayer ) per
- . se il risultato > 1
---- TurnScore Player = TurnScore.Player + risultato
---- Se TotalScore.Player TurnScore.Player + > = 100 , giocatore vince
---- Run Turn ( Player ) per
giocatore sceglie per fermare
- . punteggio totale del giocatore = TotalScore.Player + Commercio TurnScore.Player
- Run Turn ( NextPlayer ) economici 2
Calcola una strategia per il computer da utilizzare quando il lettore del computer sta valutando se a rotolare o fermarsi. Una strategia di base è quella di avere il computer di continuare a tirare fino a quando il suo punteggio sua volta è superiore a 20 , in base alla logica che ogni rullo ha cinque probabilità su sei di aggiungere una media di 4 punti, quindi fino a raggiungere un punteggio giro di 5 * 4 , la " scommessa " è utile. Per affinare la strategia , trovare un modo per valutare se vale la pena di spingere ultimi 20 punti , come ad esempio quando il tuo avversario ha 99 punti e si inizia un turno con 78 .
3
progettare una funzione che calcola la decisione del giocatore computer. La funzione dovrebbe prendere come variabili di input che rappresenta il punteggio del computer di turno e (se necessario per il calcolo strategico ) punteggio totale di entrambi i giocatori e restituire una variabile che rappresenta la scelta di lanciare o fermare dopo l'elaborazione degli ingressi in base alla strategia che hai disegnato . Una modifica di base del " tenere premuto fino a 20" di strategia , per esempio , potrebbe essere simile a questo :
Funzione: Scegliere ( TurnScore , OpponentScore ) per
OpponentScore > 80
< p > - Il ritorno (Roll ) per
Else If TurnScore < 20
- Return (Roll ) per
Else Return (Stop ) economici < br >