Skip to content

Russian Roulette Game #360

@Pierre-Demessence

Description

@Pierre-Demessence

A Russian Roulette game, which is only 1 player max (so you play vs the house).
Since it's a vs house game, there should be a house edge.

The game should be played like this:
You start the game, you bet and get ready.
Then every turn you get the choice between two actions:

  • Pull Trigger

  • Cash Out

  • Pull trigger should check if we get the bullet, if yes then the game end and player lose the bet. If no, the game continues to next turn.

  • Cash Out ends the game and gives the player their payout.
    If it's the final round, the game ends automatically and cash out for the player.
    End embed should show how many bullet the player survived.

For the bullet part, several ideas, idk which one is good:

  • Could simply not simulate anything and instead when we "Pull Trigger" just do the RNG with X/6 chance of winning/losing.
  • Or we could simulate the chamber with an array. At game initialization we create an array of 6, we put 1 bullet in it (could be an array of numbers 0 = empty, 1 = bullet). We then spin the chamber (shuffle). Then each turn, we check the first array element, if it's 1 we lose, otherwise we go to next turn and shift all elements (simulating the chamber advancing by 1).
  • Or we could simulate a chamber like before, but small difference: we add 1 bullet per turn. So turn 1 has 1/6 bullet, turn 5 has 5/6 bullets. And we spin the chamber before each turn.

For the payout it depends on how many bullets survived:
Both simulation systems have different ods, so the payout should be different.
For System 1:
0. x1 (we get what we betted)

  1. x1.1
  2. x1.4
  3. x1.9
  4. x2.9
  5. x5.9

For System 2:
0. x1 (we get what we betted)

  1. x1.1
  2. x1.65
  3. x3.4
  4. x10.4
  5. x63

In the end I think it would be good to implement both systems. Before even turn 1 we ask the user what mode he wants to play.

During each turn, it should be shown to the player what is the current payout, and I think it's nice to also show the next payout.

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions