AVISO: esse é um problema bastante complexo, em um estilo de combate do tipo rei da colina, com uma aleatoriedade adicional, o melhor código nem sempre pode vencer. Por favor, leia todas as regras na íntegra, pois é bastante complexo!
FLAVOR TEXT
Bill e Steve decidiram fazer um duelo "amigável", por mais rico e inteligente que fossem, decidiram deixar seus melhores programadores tentarem inventar o código para se derrotarem. Você é o programador.
OBJECTIVE
Na esgrima, seu objetivo é marcar o maior número de acertos no seu oponente, enquanto é atingido menos
MOVES
Seu código terá as seguintes opções de "movimentos"
Ataque
Parry
Block
Lunge
AND
Head
Chest
Feet
SCORING POINTS
Batidas de ataque Parada, por 1 ponto
Bate de bloqueio, por 1 ponto
Paradas de batidas, por 1 ponto
Batidas de bloqueio Ataque, por 1 ponto
Laços de ataque Ataque, com o jogador atacante incapaz de bloquear ou desviar a próxima rodada e o jogador atacante incapaz para atacar ou atacar a próxima rodada
Bloqueios Parrying, com o jogador aparador incapaz de bloquear ou aparar a próxima rodada e o jogador bloqueador incapaz de atacar ou atacar a próxima rodada
HEIGHT OF ACTION
você também escolherá uma "altura" para a sua ação, e os resultados acima somente ocorrerão se as alturas dos dois jogadores corresponderem à altura do ataque. se as alturas não coincidirem, os dois jogadores não poderão mais selecionar a mesma ação (a altura não é restrita) que as rodadas anteriores, até que um ponto seja marcado ou todas as 4 ações tenham sido cumpridas (uma vez que o empate é interrompido, todas as ações estão disponíveis novamente)
CODE REQUIREMENTS
para cada rodada, deve solicitar a movimentação do oponente na rodada anterior (exceto a rodada 1), compará-la com a sua, determinar o resultado da rodada anterior e, em seguida, apresentar o número da próxima rodada, a pontuação e sua escolha / posição para aquela rodada
ex:
ENTRADA: LC (estocada no peito)
SAÍDA: rodada anterior: pontuação PM vs LC - PM! o placar agora é 2-1, a ação para a próxima rodada é AH (cabeça de ataque)
WINNER
o jogo termina após 50 rodadas, ou após 3 pontos terem sido marcados
AGAINST OTHER PLAYERS
a primeira resposta receberá uma vitória garantida instantânea, desde que funcione para realmente trabalhar / se divertir. Cada resposta será avaliada, em ordem de publicação, em relação ao vencedor anterior e, se vencer, será declarado o novo vencedor. Peço que, ao ganhar ou à espera de competir, você NÃO mude seu código. Depois de derrotado, você não poderá mais competir pelo status de campeonato com o mesmo idioma; no entanto, poderá enviar uma resposta de idioma diferente (deve ser significativamente diferente, sem usar variações do mesmo material básico).
Tentarei executar cada desafio e publicarei os resultados nos comentários do campeão e do desafiante, além de declarar um novo vencedor - pois talvez eu não consiga executar todos os idiomas, especialmente os mais obscuros, pergunto. qualquer ajuda possível que você possa dar para garantir que sua resposta seja executada seja levada em consideração. Obrigado!
fonte
Respostas:
Pitão
En garde!
Meu guerreiro combina imprevisibilidade com um olhar aguçado de fraqueza na posição de seu oponente. Ele está bastante confiante de que será capaz de eliminar inimigos agressivos, mas seu treinador (eu) pode ter falhado em antecipar certos cenários ou, talvez mais preocupante, pode ter interpretado mal as regras (bugs !!).
De qualquer forma, sou novo, então espero que este seja um formato aceitável para o código:
fonte
Eu reivindico a colina!
Isso inclui uma estrutura que cuida da correspondência, entrada e saída. Tudo o que você precisa fazer é definir suas próprias versões de duas funções no cabeçalho "AIh", que definem o primeiro movimento e todos os outros movimentos.
Isso compila no VS2012 (versão gratuita). Que eu saiba, ele será compilado em qualquer compilador compatível com os padrões.
Eu chamo essa IA de "Bárbaro Não Sofisticado". Tenho certeza de que não vai demorar muito para alguém vencer.
fonte
UNITIALIZED
?!