Le jeu de dés , "Pig ", a des règles qui sont simples à décrire, mais la conception de la pseudo-code pour un programme où l'ordinateur joue avec la stratégie optimale est un casse-tête étonnamment difficile. Pour jouer "Pig ", les joueurs prennent des tours de roulement d'un seul dé. Sur tout rouleau autre que 1 , le nombre sur le dé est ajouté au score de tour du joueur. Sur un résultat de 1, le tour du joueur se termine avec un score ajouté à son total . Après tout rouleau , le joueur peut décider de mettre fin à son tour et ajouter son score de tour à son score total . Le premier joueur à atteindre 100 points remporte la partie. Instructions
1
Concevoir une fonction qui va permettre à un joueur de prendre un virage en choisissant de rouler ou de s'arrêter. Le pseudo doit suivre ce processus , mais vous aurez probablement l'exprimer plus en détail :
Fonction: Turn ( Player)
affichage TotalScore.Player et TurnScore.Player
Obtenir entrée
Si le joueur choisit de rouler
- Générer des nombres aléatoires de 1 à 6
- Si Resultat = 1
---- TurnScore . Joueur = 0
---- Turn Run ( NextPlayer )
. - Si Résultat> 1
---- TurnScore joueur = TurnScore.Player + Résultats d'
---- Si TotalScore.Player + TurnScore.Player > = 100, joueur gagne
---- Turn Run ( player)
Si le joueur choisit pour arrêter
- . Score Total joueur = TotalScore.Player + TurnScore.Player
- Run Turn ( NextPlayer )
2
Calculer une stratégie pour l'ordinateur à utiliser lorsque le lecteur de l'ordinateur évalue s'il convient de rouler ou de s'arrêter. Une stratégie très simple , c'est d'avoir l'ordinateur continuer à rouler jusqu'à ce que son score de tour est au-dessus de 20, basé sur la logique que chaque rouleau a cinq chances sur six d'ajouter une moyenne de 4 points , jusqu'à ce que vous atteignez un score de tour 5 * 4 , le « pari » est intéressant . Pour affiner la stratégie , trouver une manière d'évaluer quand il est bon de pousser dernières 20 points , par exemple lorsque votre adversaire a 99 points et vous commencez un tour avec 78.
3
concevoir une fonction qui calcule la décision de l' ordinateur joueur . La fonction devrait prendre que des entrées variables représentant le score de l'ordinateur de tour et (si nécessaire pour le calcul stratégique) les scores totaux des deux joueurs et retourner une variable représentant le choix de rouler ou de s'arrêter après le traitement des données fondées sur la stratégie que vous avez conçu . Une modification fondamentale de la «tenir jusqu'à 20" stratégie , par exemple, pourrait ressembler à ceci :
Fonction: Choisir ( TurnScore , OpponentScore )
Si OpponentScore > 80