O truco paulista tem uma regra que parece simples e dá trabalho em código: a manilha muda a cada mão. Não existe uma lista fixa de cartas mais fortes. Depois de distribuir as cartas, vira-se uma e a manilha é a carta seguinte na ordem do baralho.
Este texto mostra como representar isso sem tabela de casos. As regras são as do truco paulista, com baralho de 40 cartas (o de 52 sem 8, 9 e 10).
A ordem das cartas
Da mais fraca para a mais forte, sem contar a manilha:
const ORDEM = ["4", "5", "6", "7", "Q", "J", "K", "A", "2", "3"] as const; type Valor = (typeof ORDEM)[number]; O naipe não conta para as cartas comuns: dois 3 de naipes diferentes empatam a rodada.
A manilha é a seguinte à vira
Se a vira é um 4, a manilha é o 5. Se a vira é um rei, a manilha é o ás. Se a vira é um 3, a ordem dá a volta e a manilha é o 4. Um módulo resolve os três casos:
function manilhaDe(vira: Valor): Valor { const i = ORDEM.indexOf(vira); return ORDEM[(i + 1) % ORDEM.length]; } Desempate das manilhas pelo naipe
As manilhas vencem tudo e se desempatam pelo naipe, do mais forte para o mais fraco: paus (o zap), copas, espadas e ouros.
const NAIPES = ["ouros", "espadas", "copas", "paus"] as const; // fraco -> forte type Carta = { valor: Valor; naipe: (typeof NAIPES)[number] }; function forca(c: Carta, manilha: Valor): number { if (c.valor === manilha) return 100 + NAIPES.indexOf(c.naipe); return ORDEM.indexOf(c.valor); // 0..9, naipe não conta } Comparar duas cartas vira comparar dois números. Se der igual, a rodada empatou.
O empate é onde cada mesa muda
Se a primeira rodada empata, vence a mão quem levar a segunda. Se a primeira tem vencedor e a segunda empata, vence quem levou a primeira. Se as duas primeiras empatam, a terceira decide. O caso que varia entre mesas é o das três rodadas empatadas: em algumas a mão fica com quem começou a rodada, em outras ela é anulada. No Buteco ela é anulada, e vale combinar isso antes quando se joga fora dele.
Teste
Com a força da carta como função pura de (carta, vira), dá para escrever um teste por vira possível (são 10) e cobrir a volta do 3 para o 4 sem esforço. No truco mineiro as manilhas são fixas, então ali nada disso é preciso.
As regras completas, com a mão de onze, a mão de ferro e exemplos, estão em Como jogar truco (regras do truco paulista). Para praticar contra o computador, tem o treino de truco do Buteco.