Odds för tärningspool med exploderande tärningar

7

Jag designar ett bordspel med tärningspoolmekaniker för kampupplösning. Du rullar några d6 och varje dö som rullade minst 3 räkningar som en succé:

  • Om du rullar mer 1s än 6s, är det en fumla
  • En eller två succéer är ett lätt sår
  • Tre framgångar i en rulle är ett allvarligt sår
  • Sex framgångar är ett kritiskt sår
  • För varje 6 du rullar får du en succé. Lägg också till en annan d6 till poolen för varje 6 du rullade. Räkna var och en av dessa dö som en succé oavsett antalet kastade . Var och en av dessa kan också explodera på 6.

Jag har allt utom sista punkt som omfattas av funktionen nedan ( direktlänk till AnyDice-funktionen ). Men jag kämpar med den sista delen, den exploderande tärningsmekanikern.

Det är avgörande för att utvärdera systemet, eftersom det inte går att öka risken för exploderande tärningar, och är nästan 1/3 vilket är alldeles för högt. Exploderande tärningar kommer att begränsa sannolikheten för fumbles. [redigera: nej, det kommer inte]

Någon ide hur man skriver den här funktionen?

391.133     
uppsättning bramford 29.07.2016 23:34

3 svar

1

Det finns en inbyggd explode -funktion, men du måste använda den innan du gör din andra behandling. Specifikt använd FOOdBAR för att ha BAR utvärderad som en sekvens och användes för att generera FOO "tärningar" med godtyckliga sidantal och värden. Här gör DICEd([explode d6]) jobbet och vrider en exploderad d6 till basen för den aktuella rullen. ( explode skiljer inte tärningar som du ger det - du måste göra det, eller du får en 5d6-roll som bara exploderar en gång på 30.)

Du kan inte jämföra sekvenser till ett tröskelvärde för att få en lista eller summan av värden mot det här tröskelvärdet. Du får bara sekvensen summerad och kontrollerad mot tröskeln. Använd istället [count VALUES in SEQUENCE] för var och en av de giltiga värdena (3-6). Och som det visar sig, eftersom varje 6 triggar en ny dörr och alla dessa tärningar räknas, kan du bara dubbla räkna 6s en gång exploderad. Så det borde vara [count {3..6, 6} in ROLL] .

Resultaten, som jag bäst kan hantera, är inte snygga. Varje explosion kommer antingen att snurra hårdare (1), göra inga framsteg mot fumbling (2-5), eller bryta jämnt och få en ny chans att göra samma sak (6), och ju mer tärning du börjar med desto större risk för explosioner. Det finns ingen bestämmelse om att fumbles kommer ut i explosioner, som man skulle kunna förvänta sig av en stor framgång; Den enda frågan är om kedjan slutar med en 1 eller inte.

    
svaret ges 30.07.2016 01:20
2

Jag tog en spricka på den i Python (jag vet att det inte är anydice. Oavsett.). Visas ut, även om vi utesluter exploderade från att räkna mot fumbleen, är fumbles fortfarande alldeles vanliga i någon rimligt stor dörrpool (min testpool på 8d6 vände sig fortfarande upp runt halva tiden). Här är mitt Python-skript som utesluter exploderade:

391.133

Kopiera klistra in det här för att se det i åtgärd.

    
svaret ges 24.11.2016 17:35
-1

Ser ut som att jag hade fel och lärt mig något. Du kan göra det på AnyDice. :-) Jag tweaked den koden i den första länken i kommentarerna för att lägga till i logiken för att sänka framgångar när 1s inträffar. Det ser ut som om du har en 3d6-rull skulle du få en -1 eller lägre poäng ~ 8,5% av tiden. 0 ~ 12%, 1 ~ 22% 2 ~ 22% och 3 eller mer ~ 35% av tiden baserat på resultaten.

För att klargöra vad detta gör: Funktionerna längst ner använder 1s för att indikera att de borde tillåta den där saken (exploderande tärningar, rerolls, subrakt misslyckas) och 0s för att indikera att de inte borde. Tröskeln är tärningsrullen (eller högre) som räknas som en framgång. Så om det är 3 då är 3-6 framgångar. Jag har bara lagt till bef-funktionen, men du kan enkelt ändra funktionerna för att ändra tröskelvärdet, om de exploderar eller inte etc. Lejonets andel av krediten går till @Magician som svarade på den här frågan . Så för din fråga kan du bara redigera den sista raden bef 3-delen för att vara bef [# d6 att rulla inledningsvis].

391.133     
svaret ges 30.07.2016 00:04