Pazaak é um jogo de cartas do universo Star Wars. É semelhante ao BlackJack, com dois jogadores se enfrentando tentando alcançar um total de vinte sem ultrapassar. Cada jogador tem um "baralho lateral" de quatro cartas próprias que eles podem usar para modificar sua pontuação.
Entre os melhores
A partir de 17/06/2015 às 16:40 EDT
Edit: Neptor foi desqualificado por trapaça. As pontuações serão corrigidas o mais rápido possível ...
- NEPTR: ~ 424.000
- O garoto de Cincinnati: ~ 422.000
- Nestor: ~ 408.000
- Austin Powers: ~ 405.000
- Bastila: ~ 248.000
- Jogador cauteloso burro: ~ 107.000
- Jogador corajoso mudo: ~ 87.000
Mock Pazaak Cup, Playoffs
Será atualizado assim que possível.
Primeira Rodada - Nestor vs Bastila e Austin Powers vs The Cincinnati Kid
Segunda Rodada - Nestor vs Austin Powers e The Cincinnati Kid vs Bastila
Mecânica
A jogabilidade é feita em turnos. O jogador um recebe uma carta do baralho principal (casa). O baralho da casa contém quarenta cartas: quatro cópias de um a 10. Depois de receberem uma carta, eles podem optar por terminar o turno e receber uma nova carta no próximo turno, permanecer no seu valor atual ou jogar uma carta do baralho lateral e fique no novo valor. Após o jogador 1 decidir o que eles querem fazer, o jogador 2 repete o processo.
Depois que os dois jogadores saem, as mãos são avaliadas. Se um jogador bombardear (ultrapassou os vinte), o outro jogador vencerá, desde que também não o tenha bombardeado. Se um jogador optar por ficar de pé e o outro jogador tiver um valor de mão mais alto, o outro jogador vencerá. Se ambos os jogadores escolherem ficar de pé, o jogador com o valor mais alto da mão vencerá. Em caso de empate, nenhum jogador ganha.
Desde que uma condição vencedora não seja cumprida, a reprodução será repetida. Se um jogador optar por terminar o seu turno, receberá uma nova carta e poderá fazer uma nova escolha. Se eles escolherem ficar de pé, ou se jogaram uma carta do seu deck lateral, eles não receberão uma nova carta e não poderão escolher uma nova ação.
O jogo continua assim até um jogador vencer o jogo. Os jogos são disputados nos melhores três em cada cinco sets.
Por que Pazaak "Simples"?
No universo de Star Wars, Pazaak envolvia jogos de azar. Embora a inclusão de um sistema desse tipo acrescente mais dinâmica ao jogo, é um pouco complicado para uma competição KoTH pela primeira vez.
Os decks laterais "Real" do Pazaak também foram fornecidos pelos próprios jogadores e podem incluir muitas opções diferentes de cartões, como cartões negativos, cartões positivos ou negativos, cartões flip, cartões duplos e cartões de desempate. Isso também tornaria o jogo mais interessante, mas exigiria uma interface de jogo e exigiria muito mais dos concorrentes. Neste jogo Simple Pazaak, cada jogador recebe o mesmo deck lateral: duas cópias de uma a cinco, das quais quatro são selecionadas aleatoriamente.
Dependendo do sucesso deste jogo, posso fazer um esforço para desenvolver uma versão avançada em que jogos de plataforma e plataformas laterais personalizadas sejam possíveis.
Os jogadores
Os jogadores deste jogo serão bots criados por você. Cada bot precisa estender a classe Player, importar o pacote Mechanics e residir no pacote players da seguinte maneira:
package Players;
import java.util.Collection;
import Mechanics.*;
public class DemoPlayer extends Player {
public DemoPlayer() {
name = "Your Name Here";
}
public void getResponse(int wins[], boolean isPlayerOne,
Collection<Card> yourHand, Collection<Card> opponentHand,
Collection<Card> yourSideDeck, int opponentSideDeckCount,
Action opponentAction, boolean opponentDidPlay) {
action = null;
cardToPlay = null;
}
}
A cada rodada, o controlador chamará o método getResponse para o seu bot, a menos que o bot indique previamente que deseja permanecer. O método getResponse pode definir duas propriedades: uma ação e um cartão para jogar. A ação pode ser uma das seguintes:
- FIM: Termina o turn e compra uma nova carta no próximo turno.
- STAND: permanece no valor atual da mão. Não vai comprar um cartão.
- PLAY: Joga uma carta do baralho lateral e fica de pé.
Obviamente, a carta a jogar é importante apenas se você definir a ação para JOGAR. É preciso um objeto de cartão. Se o objeto Card que você passar para ele não existir no seu deck lateral, seu bot ficará STAND.
Os parâmetros que seu bot recebe a cada turno são:
- Uma matriz contendo as vitórias de cada jogador. ganha [0] é do Jogador 1, ganha 1 é do Jogador 2 (int [])
- Se seu bot é ou não um jogador (booleano)
- Uma coleção das cartas que você recebeu até agora (coleção)
- Uma coleção das cartas que seu oponente foi distribuído até agora (Coleção)
- Uma coleção de cartas no seu deck lateral (coleção)
- O número de cartas restantes no baralho lateral do seu oponente (int)
- A ação que seu oponente fez pela última vez (Ação) [Nota: Isso será FINAL ou STAND, nunca JOGAR]
- Se seu oponente jogou ou não uma carta (booleano)
Regras do bot
Seus bots podem usar apenas as informações fornecidas através do método getResponse. Eles não devem tentar interagir com nenhuma outra classe. Eles podem gravar em um único arquivo para armazenar dados entre as rodadas. Eles podem ter métodos, propriedades, etc. personalizados, conforme desejado. Eles devem ser executados em um período de tempo razoável (se o programa não for praticamente instantâneo, notarei que algo está errado).
Se você encontrar algum tipo de exploração no código, será recompensado por "se entregar". Se eu notar a exploração primeiro, eu a corrigirei e você não receberá recompensa.
Demonstrações
O controlador não é necessário para escrever um bot, pois tudo já está explicado neste post. No entanto, se você deseja testar, ele pode ser encontrado aqui: https://github.com/PhantomJedi759/simplepazaak Dois bots básicos estão incluídos. Nenhum dos dois deve se manter bem contra um oponente "inteligente", pois ele só escolhe entre END e STAND. Aqui está uma amostra do que eles fazem:
New Game!
The standings are 0 to 0
Dumb Bold Player's Hand: []
Dumb Bold Player's new Hand: [2]
Dumb Bold Player has chosen to END
Dumb Cautious Player's Hand: []
Dumb Cautious Player's new Hand: [8]
Dumb Cautious Player has chosen to END
Dumb Bold Player's Hand: [2]
Dumb Bold Player's new Hand: [2, 8]
Dumb Bold Player has chosen to END
Dumb Cautious Player's Hand: [8]
Dumb Cautious Player's new Hand: [8, 3]
Dumb Cautious Player has chosen to END
Dumb Bold Player's Hand: [2, 8]
Dumb Bold Player's new Hand: [2, 8, 7]
Dumb Bold Player has chosen to END
Dumb Cautious Player's Hand: [8, 3]
Dumb Cautious Player's new Hand: [8, 3, 6]
Dumb Cautious Player has chosen to STAND
Dumb Bold Player's Hand: [2, 8, 7]
Dumb Bold Player's new Hand: [2, 8, 7, 6]
Dumb Bold Player has chosen to STAND
Dumb Cautious Player's Hand: [8, 3, 6]
Dumb Cautious Player has chosen to STAND
Dumb Bold Player has bombed out! Dumb Cautious Player wins!
Como esses robôs dependem exclusivamente da sorte do empate, as taxas de ganhos e perdas podem variar drasticamente. Será interessante ver como a habilidade pode combater a sorte do jogo.
Isso deve ser tudo o que você precisa! Vá construir alguns bots!
Esclarecimento de Regras
O baralho principal é de quarenta cartas: 4x1-10 É embaralhado no início de cada mão.
O baralho lateral de um jogador tem quatro cartas, selecionadas aleatoriamente entre 2x1-5. O deck lateral persiste entre as mãos.
As mãos são jogadas em jogos para os três melhores em cinco. Os bots são pontuados com base no número total de jogos ganhos e, em seguida, no número total de mãos.
A partida é realizada para que cada jogador tenha que jogar 100.000 jogos contra todos os outros jogadores.
Na Copa Pazaak, as rodadas de eliminação diminuirão quem realmente é o melhor bot de Pazaak. Cada par de bots jogará para os quatro melhores jogos de quatro em sete de 100.000 jogos. Quem vencer quatro subirá a escada para o próximo oponente, e os perdedores permanecerão na batalha por classificações sequenciais. Esse estilo de jogo é o mais justo, pois os bots não podem "ganhar a fazenda" de certos oponentes para compensar a falta de habilidade contra outros. A Copa Pazaak será realizada na sexta-feira, 3 de julho, desde que haja pelo menos oito bots enviados. O vencedor receberá o status Resposta correta e um bônus inicial no Advanced Pazaak, que, esperamos, estará pronto quase no mesmo horário em que a Copa Pazaak for realizada.
fonte
Respostas:
The Cincinnati Kid
Tente garantir que compremos outra carta se soubermos que estamos perdendo; caso contrário, olhe para o nosso deck lateral e a pontuação geral para decidir o que fazer.
Atualizado para fazer um trabalho melhor ao lidar com situações em que o oponente já terminou de jogar. Nos meus próprios testes, isso agora parece ser o melhor candidato novamente, pelo menos por enquanto.
fonte
Austin Powers
Austin Powers, como você pode presumir, gosta de viver perigosamente. A menos que alguém tenha quebrado, ou ele possa garantir uma vitória, ele sempre acertará se estiver atrasado ou tiver uma chance maior que 20% de não estourar.
fonte
Bastila
Bastila joga de forma conservadora. Para ela, um 17 é tão bom quanto um 20, e é muito melhor ficar aquém do que bombardear.
fonte
Nestor
Nestor adora fazer 20 usando seu deck lateral, mas quando isso falha, ele calcula seu retorno esperado escolhendo stand ou end, assumindo que o oponente seja sensato.
fonte
Glauco
Glaucus faz 100 simulações com uma lista de cartas embaralhadas e escolhe sua melhor opção com base nessas simulações.
fonte
HK-47
Ver! Um bot de meu próprio projeto. HK-47 tenta matar todos os sacos de carne que pode, embora esteja um pouco satisfeito com suas cartas do baralho lateral.
Até agora, ele pode vencer todos, menos o The Cincinnati Kid.
fonte
NEPTR
(Torta sem fim jogando robô)
Neptor está arrependido, Neptor trapaceou. Neptor realmente ia ficar limpo, ele só queria se divertir primeiro :(
fonte
PazaakGameMain.HAND_GOAL = ingredients; //Trololo, you caught me, sorry!
esteja realmente funcionando.