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.
| 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
}
|