Como posso calcular a probabilidade de poder comprar um cartão no meu sistema de morrer personalizado?

5

Estou tentando calcular a probabilidade de atingir um total com um sistema de matriz personalizado.

Cada dado neste sistema possui lados 6: Espada 1, Espada 2, Espada 3, Político, Castelo e Mago.

Cada jogador começa com esses dados do 7. Por sua vez, eles podem comprar cartas de um suprimento central se conseguirem rolar um total especificado na carta. Um exemplo seria a carta de Sacerdote que exige que um jogador obtenha Espadas 4, Espada 1, Político 1 e Castelo 1. Um jogador declararia que tentaria comprar esta carta e depois jogaria seus dados. Eles tentavam combinar dados para atender ao requisito de espadas 4 e / ou gastam dados para atender a qualquer outro requisito listado. A ordem em que os requisitos são atendidos não importa. Depois de gastar quantos dados o jogador quiser, sem um mínimo, o jogador rolará novamente todos os dados restantes não gastos para atender aos requisitos e tentará novamente se ainda não tiverem cumprido todos os requisitos. Se nenhum requisito foi cumprido nesta rodada, uma penalidade no dado 1 é paga pelo jogador. Os dados não podem ser reservados entre as rodadas.

Estou interessado em encontrar uma maneira de calcular rapidamente as chances de conseguir comprar uma carta em um turno, considerando o custo dessa carta.

Um exemplo de uma compra malsucedida seria:

1) O jogador declara que deseja comprar o cartão do Sacerdote

2) O jogador lança Espada 1, Espada 1, Política, Política, Espadas 3, Castelo, Espadas 2.

3) Eles escolhem colocar a espada 1 para atender ao requisito da espada 1, as espadas 3 e a outra espada do 1 para atender ao requisito das espadas 4, optam por não gastar nenhum dos políticos para atender ao requisito político (sem motivo, apenas causa) e rolar novamente os dados 4, pois três são colocados no cartão de sacerdote, cumprindo os requisitos.

As próximas jogadas são todas espadas, então o jogador perde um único dado e rola novamente o 3.

Eles se tornam políticos do 3 e, portanto, tomam um para completar o requisito político, deixando o 2 em jogo.

Eles rolam, obtendo uma Espada 3 e um Mago, e assim perdem um dado.

Eles rolam, obtendo um 2-Swords e não cumprem os requisitos.

Existem outras mecânicas em jogo com cartas que alteram as condições, mas eu só preciso de ajuda com esse aspecto.

Tentando usar o AnyDice e não tendo nenhum sucesso real, como exemplos e ajustes no código existente causam erros.

Mais uma vez, estou tentando calcular rapidamente as probabilidades de poder comprar um cartão em um único turno, considerando seu preço.

Pretendo usar esse mecânico primeiro em um jogo de cartas e depois escalá-lo para usá-lo como o mecanismo por trás de um sistema de RPG.

por user37069 08.07.2017 / 18:26

3 respostas

Há um jogo de dados quase exatamente como o que você está descrevendo chamado Farkle. Farkle é um jogo em que você tenta fazer certas combinações de dados e quando você faz um combo, os dados envolvidos são "travados" removidos da sua piscina. Contanto que você faça pelo menos um teste de pontuação e bloqueie essa pontuação, poderá continuar lançando qualquer dado que ainda não tenha sido bloqueado. Em vez de pontuações, seu jogo tem custos para cartões, mas isso não muda a matemática.

Aqui estão alguns bons artigos sobre pontuação e probabilidade para Farkle:

https://graciesdad.wordpress.com/2009/08/30/farkle-odds/

http://www.jonmutchler.com/FarkleFun2.html

A palavra "Farkle" refere-se a "falha ao marcar em um rolo". Então, quando você vê "probabilidade para Farkle", eles estão falando sobre a probabilidade de rolar dados de uma maneira que nada possa ser travado, e nesse ponto o jogador deve parar de rolar. 1 - P (farkle) = probabilidade de marcar e continuar rolando.

Tudo o que você precisa fazer é substituir a tabela de pontuações possíveis pelos custos associados às suas cartas e mapear cada lado dos dados do seu jogo para 1-6 (por exemplo, "Espada 1-3" é 1-3, Política = 4, Castelo = 5, Assistente = 6). As diferenças que você deve levar em consideração é que Farkle é jogado com dados 6 e seu jogo é jogado com 7, e que, em Farkle, um único 1 ou 5 é uma jogada de pontuação, enquanto no seu jogo uma jogada que contribui para o custo de um cartão é um rolo de pontuação; para que o seu "P (farkle)" seja alterado com base na carta que está sendo lançada.

Se você precisar de ajuda para converter um jogo de dados 6 em um jogo de dados 7, essa é uma pergunta separada, mas também posso tentar ajudar. Como alternativa (se não interromper o seu jogo), você pode transformá-lo em um jogo de dados 6 e portá-lo diretamente, reduzindo os custos de todas as suas cartas pelo 1 para representar menos dados.

15.07.2017 / 02:13

Eu codifiquei uma simulação incompleta do seu conjunto de regras em Python. Da minha estratégia, parece ter cerca de oitenta por cento de chance de comprar a carta do Sacerdote com sete dados. Eu testei o código em TiO para que você possa executá-lo sem instalar o Python localmente.

Aqui está um exemplo da saída de depuração:

Reqs: [Sword_4, Sword_1, Political, Castle] Rolls: [Wizard, Sword_1, Sword_3, Sword_1, Castle, Wizard, Sword_1] Correspondente: Castle 4 correspondido por 3, 1 Sword_1 [Matched exactamente, Wizard, Swum_1, Sword_1] , Sword_4], ainda precisa re-rotular [Political] Reqs 3: [Political] Rolls: [Castle, Wizard, Sword_3, Castle] Partidas atuais: [Castle, Sword_1, Sword_1, Sword_3] Não corresponde a: [Castle, Wizard, Sword_3, Castle], ainda precisa de [Política] Reencaminhar solicitações 2: [Política] Rolos: [Sword_1, Sword_3, Sword_3] Partidas atuais: [Castle, Sword_1, Sword_1, Sword_2] Sem correspondências com: [Sword_1, Sword] [Política] Reencaminhando as solicitações 3: [Política] Rolamentos: [Sword_1] Partidas atuais: [Castle, Sword_3, Sword_3, Sword_1] Não há correspondências com: [Sword_1], ainda é necessário que a [Sword_3] ainda precise de uma nova remessa [Political] -2 para obter o Priest restante: comprar cartão Padre é sobre 78.39% após iterações 10000

Aqui está uma tentativa bem-sucedida:

Reqs: [Sword_4, Sword_1, Political, Castle] Rolls: [Castle, Sword_1, Sword_1, Wizard, Sword_1, Sword_1, Sword_3] Correspondente: castelo 4 correspondido por 3, 1 Sword_XN, MatchumX: Sword_1: , Sword_1], ainda precisa de [Política] Reencaminhar solicitações 1: [Política] Rolls: [Political, Sword_1, Castle, Sword_4] Correspondências atuais: [Castle, Sword_2, Sword_1, Sword_3] Correspondentes: políticos desnecessários: [, Sword_1] ] Padre adquirido com sucesso

Você pode definir novos cartões modificando a linha:

padre = carta ("Sacerdote", dado.Sword_4, dado.Sword_1, dado.Política, dado.Castelo)

Desculpas pela verbosidade, eu estava me certificando de que a estratégia estivesse funcionando corretamente.

Um exemplo em que minha implementação é insuficiente é não combinar um Sword 4 com um Sword 2 e dois Sword 1s. Isso é relativamente trivial de se adicionar, mas provavelmente é algo que você escolheria se o Sword 4 fosse seu único requisito restante.

Na verdade, acabei de revisar suas regras e implementei as penalidades incorretamente. Acabei de dar o primeiro re-roll grátis e adicionei uma penalidade crescente para cada rodada subsequente. É relativamente simples rastrear as partidas em uma rodada e aplicar penalidades; suspeito que isso facilite o recrutamento do Sacerdote.

Deixe-me saber se essa abordagem é interessante ou útil e eu vou corrigi-la ou ficar à vontade para tentar.

Editar: Ok, estava me roendo, então eu corrigi a implementação aqui. Como se suspeita, a chance de adquirir um Sacerdote aumenta para cerca de 85%. Aqui está um novo log mostrando um exemplo, incluindo rerolls:

Reqs: [Sword_4, Sword_1, Political, Castle] Rolls: [Sword_1, Sword_1, Wizard, Sword_1, Wizard, Sword_2, Wizard] Sword_1 Correspondeu exatamente Sem correspondências com: [Sword_1, Wizard, Sword_1, Sword_1, , ainda precisa [Sword_2, Political, Castle] Reencaminhando Reqs do 4: [Sword_7, Political, Castle] Rolos: [Castle, Castle, Wizard, Sword_4, Castle, Sword_2, Sword_2] Correspondências atuais: [Sword_1] Correspondentes por: Castle 1 4, 2 Não há correspondências com: [Castelo, Mago, Castelo, Sword_2], ainda precisa de [Político] Re-rotulando 1 Reqs: [Político] Rolls: [Sword_4, Sword_3, Sword_1, Sword_1] Correspondências atuais: [Sword_2, Castle, Sword_1, Sword_2] Não há correspondências com: [Sword_2, Sword_3, Sword_1, Sword_1], ainda precisa de [Políticos] Reencaminhar solicitações 2: [Políticos] Rolls: [Sword_3, Sword_2, Político] Jogos atuais: [Sword_3, Político] : P desnecessário: [Sword_1, Sword_2] Sacerdote adquirido com sucesso

Infelizmente, isso mostra outro problema, eu não estava removendo os dados da espada da piscina quando combinavam exatamente. Também não estava permitindo que dois Sword 3s cumprissem um requisito do Sword 4. Uma solução rápida aqui o que nos leva a uma chance de oitenta e um por cento de adquirir o sacerdote.

Aqui está uma tentativa de aquisição com falha que parece correta:

Reqs: [Sword_4, Sword_1, Político, Castelo] Rolls: [Wizard, Sword_1, Sword_1, Sword_1, Sword_2, Político, Wizard] Corresponde: Político Sword_1 Corresponde exatamente Não há mais correspondências com: [Wizard, Sword_1] , ainda precisa [Sword_1, Castle] Reencaminhando Reqs do 2: [Sword_4, Castle] Rolos: [Sword_5, Wizard, Sword_4, Castle, Wizard] Correspondências atuais: [Political, Sword_1] Corresponde: Castle Não há mais correspondências com: [Sword_1, Wizard , Sword_1, Wizard], ainda precisa de [Sword_1] Reencaminhar solicitações 1: [Sword_4] Rolls: [Sword_4, Political, Sword_4, Political] Partidas atuais: [Political, Sword_1, Castle] Não há mais correspondências com: [Sword_1, Castle] , Political], ainda precisa [Sword_1] Reencaminhar solicitações 1: [Sword_1] Rolls: [Political, Political, Sword_4] Partidas atuais: [Political, Sword_3, Castle] Não há mais correspondências com: [Political, Political, Sword_4], ainda precisa [Espada_3] Reencaminhando as solicitações de 1: [Sword_3] Rolamentos: [Sword_4, Castle] Partidas atuais: [Political, Sword_2, Castle] Não há mais correspondências com: [Sword_4, Castle], ainda precisa de [Sword_3] Reencaminhando Reqs de 1: [Sword_3] Sword_4] Partidas atuais: [Political, Sword_1, Castle] Não há mais correspondências com: [Sword_4], ainda é necessário [Sword_3] Reencaminhar o 1 Falha ao adquirir o Padre restante:

Embora isso mostre que talvez eu devesse ter incluído a partida 2,1,1 da Sword 4.

Última edição: Ok, eu fiz algumas modificações e agora o código suporta requisitos arbitrários de espada até doze. Foi um pouco complicado trabalhar corretamente e meu algoritmo genérico de correspondência de espadas não é tão bom quanto a implementação manual - 36.5% em comparação com o 40% para os requisitos do 3 Sword_4. Uma falha do meu algoritmo genérico é que ele corresponderá quatro espadas 1 a um requisito de espadas 4, mesmo se houver requisitos adicionais de espadas. Duvido que seja toda a causa da discrepância.

De qualquer forma, o código está disponível aqui.

A chance de adquirir um cartão com a exigência de Espadas 12 é de cerca de 11.5% ao jogar sete dados.

18.07.2017 / 13:18

Eu recomendo usar o site AnyDice para simular resultados. Você precisará ler um pouco a documentação para descobrir o que fazer, mas esta será a melhor maneira de simular efetivamente o que você está procurando. Preste atenção especial à seção Dados Arbitrários, que permitirá criar os dados específicos que você está procurando, mas lembre-se de que você está usando o d6 o tempo todo neste exemplo.

A seção de artigos também contém ótimas informações sobre diferentes programas para análises detalhadas que podem ser úteis para você.

14.07.2017 / 23:54