Giter Club home page Giter Club logo

prudent-pots's Introduction

Prudent Pots

Prudent Pot is a strategic, interactive game where players allocate tokens to various pots on a virtual game board. Each pot has unique rules determining the winning conditions. Players must strategically decide where to place their tokens, considering the actions of other players and the specific rules of each pot. The game emphasizes strategic thinking, forecasting, and adaptability.

Game Rules and Concept

Initial Setup

The game board consists of a row of 5 pots. Each pot has a set of unique rules for winning. Initially, the contract balance is split equally among the five pots. This could be funds provided by the developer for game instantiation or remaining funds from losing pots in the previous game.

Game Duration

Each game of Prudent Pot lasts for a duration specified by GameConfig.game_duration. The game's duration can extend if an allocation or reallocation happens within the last GameConfig.game_extend seconds, resetting the timer. After the distribution of winnings at the end of a game, the next game starts immediately.

Pot Rules

  • Pot 1 (Lowest Pot): Wins if it has the lowest token count.
  • Pot 2 (Even Pot): Wins if it holds an even number of tokens.
  • Pot 3 (Median Pot): Wins if it holds the median number of tokens.
  • Pot 4 (Odd Pot): Wins if its token count is a odd number.
  • Pot 5 (Highest Pot): Wins if it has the highest token count.

Token Allocation and Reallocation

  • Allocation Rules: Players can allocate tokens to any pot without an allocation fee. Each player is allowed to allocate tokens to a pot only once per game, preventing multiple allocations to the same pot. This rule is designed to ensure that players must carefully consider their initial strategic decisions.
  • Reallocation Rules: During reallocation, players are not bound by minimum or maximum bid constraints. However, a GameConfig.fee_reallocation% reallocation fee is still applied, contributing to the next game's pool. This fee encourages players to make thoughtful decisions when reallocating their tokens.

Allocation Dynamic Bid Constraints and Limits

  • Minimum Bid: The minimum amount a player can allocate is dynamically set based on the average token count across all pots. This prevents players from placing insignificantly small bets and ensures engagement with the game's strategic elements.
  • Maximum Bid: The maximum bid a player can allocate is set to double the average token count across all pots, preventing overwhelmingly large bets that could unbalance the game.
  • Other Limits: Additionally, players can both allocate or reallocate tokens only to empty pots.

Winning Pot Determination

The winning pot is determined by its specific rules, and players in this pot receive their proportional share of the total tokens, post the deduction of a winning fee, along with redistributed tokens from the less successful pots.

Redistribution of Losing Pots Tokens

  • 50% of tokens in losing pots are rolled over to the next game's pool.
  • The remaining 50% are now distributed proportionally to the winning pots based on the amount of tokens in each winning pot. This ensures that the distribution reflects the level of risk and investment players have put into each pot.

prudent-pots's People

Contributors

magiodev avatar

Stargazers

Interchain Adair 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.