Einar Egilsson

Idiot cardgame (também conhecido como Shithead)

Postado: 2008-09-13 Última actualização: 2012-04-18

UPDATE 20.10.2010: Há alguns dias, lancei uma versão completamente renovada deste jogo, com melhores cartas, movimentos animados e muito melhor em todos os sentidos. Isso significa que este post no blogue está completamente desactualizado! Jogue a nova versão em https://cardgames.io/idiot/ ou em https://cardgames.io/shithead/. Ou, pode reproduzir a versão original, a que este post do blogue está a falar em http://einaregilsson.com/idiot/.

P>P>Posto de blogue original segue:

As últimas semanas o meu projecto de passatempo tem vindo a criar um jogo de cartas em Javascript. Sempre quis criar um jogo de cartas e decidi usar o Javascript simples para o poder disponibilizar online uma vez que ninguém se quer dar ao trabalho de descarregar pequenos jogos. Imaginei que existiam milhares de blackjacks e solitaires por aí, por isso decidi criar o meu jogo de jogo de carros favorito, Idiota. Depois de pesquisar no Google, descobri que havia uma página da Wikipedia sobre o jogo sob o nome Shithead que listava todo o tipo de variações diferentes. A minha variação usa as regras que costumo usar na vida real:

  • O objectivo é perder todas as suas cartas colocando-as na pilha, uma carta que é colocada na pilha deve ser igual ou superior à carta do topo da pilha. Se não tiver cartas para colocar na pilha, deve pegar na pilha inteira.
  • Há sempre três cartas na sua mão, se tiver menos de três deve tirar cartas suficientes do baralho para obter três novamente. Após o baralho estar terminado, não são tiradas mais cartas.
  • Existem três cartas viradas para baixo e três cartas viradas para cima na mesa. Não pode jogá-las até a sua mão estar terminada. Não pode olhar para uma carta virada para baixo antes de a jogar.
  • Antes de começar, pode trocar as cartas da sua mão com as cartas viradas para cima na mesa.
  • Pode colocar um dois em cima de tudo, é a carta de reinício.
  • Pode colocar um cinco em cima de tudo, é a carta invertida, o que significa que na volta seguinte o adversário deve colocar uma carta igual ou inferior a cinco.
  • Pode colocar um dez em cima de tudo e queima a pilha, e pode colocar a primeira carta na nova pilha.
  • Pode colocar mais de uma carta de cada vez desde que tenham o mesmo valor.
  • Se houver quatro cartas com o mesmo valor no topo da pilha, então a pilha é removida.
  • Se não tiver nenhuma carta que possa colocar em cima da pilha, então pode retirar a carta de cima do baralho e colocar na pilha, se for um movimento legal então não tem de retirar a pilha.

O jogo pode ser jogado na url http://einaregilsson.com/idiot/. Quanto à implementação, não espere qualquer animação ou coisas extravagantes. Basta escolher as cartas que deseja colocar para fora e premir o botão Jogar cartas seleccionadas. Quando o computador estiver a jogar as cartas simplesmente desaparece da sua mão e aparece na pilha. No entanto, há um pequeno atraso entre cada jogada do computador, para que se possa ver quando ele põe duas ou mais cartas para fora e quando está a tirar cartas. Quanto à regra sobre tirar uma carta do topo do baralho quando se tem de tirar a pilha, isso é feito automaticamente. Basta premir o botão Take the pile e verá uma nova carta aparecer na parte superior da pilha (dado que o baralho não está vazio). Se a jogada for legal, então a pilha ficará, se não for legal terá a pilha inteira na sua mão.

O jogo é implementado em dois ficheiros, cards.js e idiot.js. Cards.js é uma biblioteca genérica que tem uma classe de base para um recipiente de cartas e classes de betão para uma mão, baralho e carta, podendo ser facilmente reutilizada para qualquer jogo de cartas. Idiot.js é o próprio jogo, funciona bem, embora existam muitas caixas de bordas que poderiam ser adicionadas ao jogador de computador para o tornar mais inteligente. O código é bastante comentado, por isso deve ser fácil de seguir se alguém quiser prolongar o jogo ou usar a biblioteca para alguma coisa. Os ficheiros do jogo estão licenciados sob uma licença Creative Commons Attribution e por isso podem ser utilizados para praticamente tudo, foram testados nas versões mais recentes de todos os principais navegadores. Por favor, deixe quaisquer relatórios de erro ou sugestões como comentários nesta página.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *