Calculadora de curva de mana para baralhos
Um baralho pode reunir cartas poderosas e ainda assim falhar quando os custos não acompanham os recursos disponíveis em cada turno.
Executar grátis
Esta calculadora transforma a lista em uma distribuição clara de zero até sete ou mais pontos de mana, ponderando cada linha pelo número de cópias. Ela também compara o resultado com uma referência geral e destaca diferenças grandes. Assim, você recebe um diagnóstico rápido sem supor que uma única curva seja correta para todos os jogos, formatos, estratégias ou sistemas de recursos.
Informe as cartas e suas quantidades
Adicione uma linha para cada carta distinta e informe nome, custo de mana e número de cópias. A quantidade padrão é uma, mas indicá-la explicitamente facilita a conferência de uma lista completa. O custo de mana precisa ser um número inteiro igual ou maior que zero. Use o custo impresso, a menos que o jogo ou seu processo de montagem tenha um motivo consistente para adotar um custo efetivo. Cartas que custam sete ou mais são reunidas em uma única faixa superior, pois normalmente levantam a mesma questão: o baralho consegue sustentar jogadas caras em quantidade suficiente? Cartas de custo zero permanecem em uma faixa própria. Se o jogo tratar terrenos ou recursos como entradas de custo zero, inclua-os somente quando quiser que afetem a distribuição; caso contrário, omita-os para interpretar apenas a curva de mágicas ou ações. A calculadora multiplica cada custo pela quantidade, portanto quatro cópias representam quatro cartas, e não uma linha. Uma lista vazia é recusada porque percentuais e média não teriam denominador válido. Os nomes identificam as linhas, mas não alteram o cálculo; nomes repetidos são contados como linhas enviadas separadamente, sem fusão ou descarte silencioso.
Interprete a distribuição e a comparação
A saída informa o total de cartas, o custo médio ponderado pelas cópias e oito faixas da curva: zero, um, dois, três, quatro, cinco, seis e sete ou mais. Cada faixa traz a quantidade e o percentual do baralho enviado. Ela também mostra um percentual geral de referência e a diferença com sinal em pontos percentuais. Uma diferença positiva indica mais cartas daquele custo do que a referência; uma diferença negativa indica menos. A faixa é marcada como muito divergente quando a diferença absoluta chega a dez pontos percentuais. O alerta geral é acionado quando pelo menos uma faixa cruza esse limite, e flagged_costs mostra exatamente onde você deve olhar. A comparação é intencionalmente transparente: a referência soma cem por cento, cresce até as faixas de dois e três e depois diminui rumo às cartas caras. Ela é uma base de diagnóstico, não uma regra. Um baralho agressivo de baixo custo, um controle com aceleração ou um jogo com recursos incomuns pode divergir por razões estratégicas legítimas. Use os alertas para levantar questões sobre consistência, sem substituir testes nem conhecimento do formato.
Converta alertas em ajustes úteis
Comece pela faixa marcada de menor custo, pois os primeiros turnos frequentemente determinam se o restante da mão poderá ser usado. Se os percentuais de custo um e dois estiverem muito abaixo da referência, analise mãos iniciais e conte com que frequência você tem uma jogada válida cedo. Se a faixa de sete ou mais estiver alta, verifique se essas cartas têm custos alternativos, aceleração de recursos ou impacto suficiente para encerrar a partida e justificar várias delas na mão. Não remova automaticamente todas as cartas de uma faixa excessiva. Primeiro identifique a função de cada carta; depois preserve as funções essenciais enquanto desloca efeitos substituíveis para custos mais adequados. Da mesma forma, uma faixa ausente não é necessariamente defeito quando as regras do jogo ou o plano do baralho pulam aquele turno de propósito. Compare revisões executando a mesma lista novamente após cada mudança e valide a curva proposta com mãos simuladas e partidas reais. O custo médio é um resumo útil, porém dois baralhos podem ter a mesma média e distribuições muito diferentes; examine as faixas como evidência principal. Como o método é determinístico, listas idênticas sempre geram resultados idênticos, o que favorece revisões, verificações automáticas e registros de antes e depois.
Casos de uso
Revisar um rascunho inicial
Confira se a primeira versão oferece jogadas baratas suficientes antes de investir tempo em testes detalhados.
Comparar versões do baralho
Registre a curva antes e depois das trocas para confirmar que a alteração atingiu a faixa de custo desejada.
Verificar listas importadas
Converta linhas e quantidades em um resumo consistente dentro de um fluxo de montagem ou torneio.
Perguntas frequentes
Quanto custa uma chamada de API?
Cada solicitação de API custa US$ 0,002. A calculadora no navegador pode ser usada gratuitamente.
Qual curva é considerada recomendada?
Os percentuais de referência são 3, 12, 20, 24, 18, 11, 7 e 5 por cento para custos de zero até sete ou mais. É uma base ampla, não uma regra de um jogo específico.
Quando uma faixa recebe alerta?
Uma faixa é marcada quando sua participação difere da referência em pelo menos 10 pontos percentuais, para cima ou para baixo.
Como são tratadas cartas que custam mais de sete?
Todas as cartas com custo sete ou maior entram na faixa 7+, embora o custo exato ainda seja usado na média.
Terrenos ou cartas de recurso devem ser incluídos?
Inclua-os com custo zero apenas se quiser representá-los na distribuição. Omita-os para analisar somente mágicas ou ações.
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
curl -X POST https://api.kit.forhosting.com/game/card-game-deck-build-ratio \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"decklist":[{"name":"Quick Scout","mana_cost":1,"count":4},{"name":"River Adept","mana_cost":2,"count":8},{"name":"Tower Guardian","mana_cost":3,"count":10},{"name":"Sky Captain","mana_cost":4,"count":7},{"name":"Ancient Dragon","mana_cost":6,"count":2}]}'const res = await fetch("https://api.kit.forhosting.com/game/card-game-deck-build-ratio", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"decklist": [
{
"name": "Quick Scout",
"mana_cost": 1,
"count": 4
},
{
"name": "River Adept",
"mana_cost": 2,
"count": 8
},
{
"name": "Tower Guardian",
"mana_cost": 3,
"count": 10
},
{
"name": "Sky Captain",
"mana_cost": 4,
"count": 7
},
{
"name": "Ancient Dragon",
"mana_cost": 6,
"count": 2
}
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/game/card-game-deck-build-ratio",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"decklist": [
{
"name": "Quick Scout",
"mana_cost": 1,
"count": 4
},
{
"name": "River Adept",
"mana_cost": 2,
"count": 8
},
{
"name": "Tower Guardian",
"mana_cost": 3,
"count": 10
},
{
"name": "Sky Captain",
"mana_cost": 4,
"count": 7
},
{
"name": "Ancient Dragon",
"mana_cost": 6,
"count": 2
}
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/game/card-game-deck-build-ratio", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"decklist":[{"name":"Quick Scout","mana_cost":1,"count":4},{"name":"River Adept","mana_cost":2,"count":8},{"name":"Tower Guardian","mana_cost":3,"count":10},{"name":"Sky Captain","mana_cost":4,"count":7},{"name":"Ancient Dragon","mana_cost":6,"count":2}]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"decklist":[{"name":"Quick Scout","mana_cost":1,"count":4},{"name":"River Adept","mana_cost":2,"count":8},{"name":"Tower Guardian","mana_cost":3,"count":10},{"name":"Sky Captain","mana_cost":4,"count":7},{"name":"Ancient Dragon","mana_cost":6,"count":2}]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/game/card-game-deck-build-ratio", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemplo de requisição
{
"decklist": [
{
"name": "Quick Scout",
"mana_cost": 1,
"count": 4
},
{
"name": "River Adept",
"mana_cost": 2,
"count": 8
},
{
"name": "Tower Guardian",
"mana_cost": 3,
"count": 10
},
{
"name": "Sky Captain",
"mana_cost": 4,
"count": 7
},
{
"name": "Ancient Dragon",
"mana_cost": 6,
"count": 2
}
]
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "game.card_game_deck_build_ratio",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |