Git Product home page Git Product logo

7sprobability's Introduction

7sprobability

Generating some probability charts for the new 7th Sea die mechanic (which is giving me an excuse to dink around in python).

Summary

7th Se die rolling works as follows:

  1. Grab a pool of 10 sided dice. Size of the pool is usually stat plus skill plus other modifiers, but for the purposes of this roll it largely doesn't matter, except for the complications notede below.
  2. Roll all the dice.
  3. Try to build sets of 10 (so, a natural 10 would be one set, a 6 and a 4 could be a another set and so on)
  4. You are allowed to build sets with a value higher than 10 (so 6,6 would be a valid set) and you can build sets out of however many dice you want (so 3,3,4 could be a set)
  5. You always want to optimize for the most sets. Thus, if you rolled "8,8,2,2" you would want to build two sets (8,2 and 8,2)
  6. Leftover dice form an unused set. The values of the remaining dice are unimportant, but the number of unused dice matter for other game purposes.

Complications

Skills are ranked from 1-5, and in addition to providing dice, they offer extra complications.

  • If a character has 3 ranks, they may reroll one die
  • if the character has 4 ranks, they may opt to build 2 raises by building sets on 15.
  • if the character has 5 ranks, then 10's "explode", meaning that 10 is kept, and an additional die is rolled.

These effects stack, so at 5 ranks, a character may reroll, build on 15, and have their 10s explode.

Goal

The goal of this project is twofold:

  1. Create a die roller that takes the number of dice being rolled and the skill rank and returns the number of raises and remaining pool. It must do this intelligently enough to build the same number of sets that a human player would.

  2. Once die rolling has been automated, use it to run Monte Carlo simulations of a wide array of pools and skill ranks, in order to see how the probabilities play out. I lack the skill to graph this within python (at the moment) so the priority is to be able to export a .csv (or .csv friendly text) which I can then plug into a spreadsheet to do the graphing.

7sprobability's People

Contributors

rdonoghue avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.