O jogo de dados , " porco ", tem regras que são simples de descrever , mas projetar o pseudocódigo para um programa onde o computador joga com a estratégia ideal é um enigma aparentemente complicado. Para jogar " Porco ", os jogadores se revezam lançando um único die . Em qualquer rolo diferente de 1, o número no dado é adicionado a sua vez a pontuação do jogador . Em um rolo de 1, a vez do jogador termina sem pontuação adicionado ao seu total. Depois de cada rodada , o jogador pode decidir terminar a sua vez e adicionar sua pontuação por sua vez, a sua pontuação total. O primeiro jogador a chegar a 100 pontos ganha . Instruções
1
Projete uma função que vai deixar um jogador tomar um rumo , escolhendo a rolar ou parar. O pseudocódigo deve seguir esse processo , embora você provavelmente vai expressá-lo em mais detalhes:
Função: Turn ( Player)
Mostrar TotalScore.Player e TurnScore.Player
Get entrada
Se o jogador escolhe a rolar
- Gerar número aleatório de 1 a 6
- Se Resultado = 1
---- TurnScore . Jogador = 0
---- Ligue Run ( NextPlayer )
- se o resultado > 1
---- TurnScore Jogador = TurnScore.Player + . Resultado
---- Se TotalScore.Player + TurnScore.Player > = 100, jogador ganha
---- Run Turn ( player)
Se jogador escolhe para parar
- . TotalScore Jogador = TotalScore.Player + TurnScore.Player
- Ligue Run ( NextPlayer )
2
Calcular uma estratégia para o computador para usar quando o jogador do computador está avaliando se a rolar ou parar. Uma estratégia muito básica é ter o computador continuar rolando até a sua pontuação por sua vez, é superior a 20 , com base na lógica de que cada rolo tem cinco chances em seis de adicionar uma média de 4 pontos, então até chegar a uma pontuação por sua vez, de 5 * 4 , a " aposta " vale a pena. Para refinar a estratégia , chegar a uma forma de avaliar quando vale a pena empurrar últimos 20 pontos , como quando seu oponente tem 99 pontos e você iniciar um turno com 78.
3
Projete uma função que irá calcular a decisão do jogador do computador . A função deve ter como entradas variáveis que representam pontuação vez do computador e (se necessário para o cálculo estratégico ) escores totais de ambos os jogadores e retornar uma variável que representa a opção de rolar ou parar depois de processar as entradas com base na estratégia que você projetou . Uma modificação básica do " manter até 20 " da estratégia, por exemplo, pode ter esta aparência :
Função: Escolha ( TurnScore , OpponentScore )
Se OpponentScore > 80
- O Retorno (Roll )
Else If TurnScore <20
- O Retorno (Roll )
Else Return ( Stop)
< br >