BlackJack - API

Este webservice JSON didático contém um sistema para jogar BlackJack (também conhecido como 21!). Você pode conferir as regras do BlackJack a seguir (em inglês): How to Play BlackJack

Ao criar uma partida, o sistema sorteará as cartas do jogador e da mesa. As cartas são anotadas como strings, onde o último caractere indica o naipe da carta. Os naipes são:

Exemplos: AE (Ás de espada), KC (Rei de copas), 10P (10 de paus) e 2O (2 de ouro).

Uma partida possui duração máxima de 2 minutos. Para continuar no jogo, deve-se enviar o token JWT como Bearer Token juntamente com a requisição desejada.

Ao iniciar a partida, o jogador pode obter 21 pontos (21. PLAYER WIN). Caso isso não ocorra, a partida estará no estado HIT or STAY. Nessas condições, o jogador pode pedir uma nova carta (HIT) ou se preferir pode parar (STAY) e a mesa jogará.

Caso o jogador opte por sacar uma nova carda (HIT), o sistema devolverá uma nova carta ao jogador. Se o jogador extrapolar os 21 pontos, ele perderá (BUST. DEALER WIN). Caso obtenha 21 pontos, ele ganha (21. PLAYER WIN). Em qualquer outro caso, o jogo permanece no estado HIT or STAY e o jogador pode continuar a jogar.

Quando o jogador decidir parar (STAY), a mesa começará a sacar cartas até obter uma pontuação igual a 17. Caso a mesa extrapole os 21 pontos, o jogador ganha (BUST. PLAYER WIN). Se não extrapolar, os pontos da mesa são comparados com o do jogador: o jogador ganha se obter maior pontuação que a mesa (PLAYER WIN). Nos outros casos, a mesa ganha (DEALER WIN).

O jogo só pode continuar se estiver no estado HIT or STAY. Qualquer outro estado é final.


Game

URL de requisição:

Método Exemplo Descrição Resultado
GET GET /game/create Cria um novo jogo, retornando as cartas do jogador, a carta revelada da mesa, o status da partida e o token JWT para continuar a partida.
{
  "player": [
      "10P",
      "9C"
  ],
  "dealer": [
      "9O"
  ],
  "msg": "HIT or STAY",
  "token": "..."
}
GET GET /game/hit Saca uma nova carta, caso o jogo esteja no estado HIT or STAY. Requer um token JWT válido enviado via Bearer Token.
{
  "player": [
      "10P",
      "9C",
      "6E"
  ],
  "dealer": [
      "9O"
  ],
  "msg": "BUST. DEALER WIN"
}
GET GET /game/stay O jogador cede a vez para a mesa realizar sua jogada. Requer um token JWT válido enviado via Bearer Token.
{
  "player": [
      "4P",
      "5E"
  ],
  "dealer": [
      "8C",
      "2O",
      "JC"
  ],
  "msg": "DEALER WIN"
}
GET GET /game/status Função auxiliar que retorna todas as partidas finalizadas já realizadas no sistema.
[
  {
    "hash": "2d6782fdf192a79ad20e",
    "player": [
        "KO",
        "8P",
        "10P"
    ],
    "dealer": [
        "AO",
        "6C"
    ],
    "status": "BUST. DEALER WIN",
    "data": "2024-05-24 12:29:44"
  },
  ...
]
GET GET /game/stats Retorna algumas estatísticas interessantes de todas as partidas finalizadas no sistema.
{
  "finished": 61,
  "player_wins": 10,
  "dealer_wins": 51,
  "number_21_player": 24
}