/poken2

Foundation for building a Javascript app for Token (Chat Bot / Web View)

Primary LanguageJavaScript

Poken

A poker game on Token.

Feedback on Token Starter App

  • Need an ORM built in (we integrated in Sequelize, feel free to copy code)
  • Need a higher level library, rather than low-level calls (see our sample functions in src/bot.js)
  • Need a test harness that allows rapid development and testing without hitting Token Server (allows rapid development, and doesn't require Token to be working)

Key components

Centralized

  1. Game rooms
  2. Balances and Game Actions
  3. Card Gameplay
  4. Scoring System (using )

Decentralized 5. Dapp Poker application

Game Play

  • User prompted whether to join a game room or create a new game
    • Create new game: (Can be public or private, needs a name)
  • When joining, can start a game if more than 1 player
  • Join and leave notification
Sample gameplay:

Welcome to Poken! Do you want to join an existing game room or create a new one? (Actions: Join, Create)

Create new game: Great, give your game room a name: SOME NAME Join a game: Which game? (Actions: will show listing or let them type in a name)

You are the first person in this game room. Notify your friends that the game is running.

@abc just joined. Actions: Start game, exit room, wait

Choice: Start game You got "Jack of Spades and King of Hearts" Actions: (Match/Check, Raise $set amount, Raise Custom, Fold) @jb matched @asda raised Total pot:

Flop: Cards a/b/c. @jb checked Total pot:

Turn:

River:

Other Ideas

  • Alternate token for use specifically with this game (and pre allocations)
  • Need to make this fun and addictive (jokes, memes, random points)

Data Model

Game

  • name
  • state
  • bigBlind
  • ante
  • maximumBuyIn
  • game_users (association)
    • user
    • balance
    • playing
    • active
    • state (sitting_out, playing, folded, all in)
    • state timestamp of when they hit each state (to order sidepot)

Hand

  • state (ante_and_blinds, preFlop, flop, turn, river)
  • pot
  • sidePot (0 to many)
  • bigblind
  • littleblind
  • dealer

Action

  • user (assocation)
  • game (association)
  • action
  • amount
  • number: auto incrementing integer
  • time_limit

User

  • username
  • address