Create software to manage a Multi Table Tournament

  • Estado: Closed
  • Prêmio: $500
  • Inscrições Recebidas: 3
  • Vencedor: rmparisi

Síntese do concurso

Poker MTTs are comprised of many different tables, each with 9 to 10 players who are all competing for a seat at the final table. Your job is to create software to manage the tournament (not the game).

REQUIREMENTS:
-Javascript/NodeJS (Typescript strongly preferred)

RESPONSIBILITIES:
-Randomly seed the tables and seats of players
-Keep track of standings in tournament
-Pay winning player(s) [i.e. Last Man Standing, custom payout structure, etc...]
-Balance the tables/move players to another table, when players are eliminated
-Keep track of how many buy ins a player has left

The architecture of the software should be event based. In other words, the inputs will be events and the software should create snapshots of state after each event is processed.

Feel free to design the input events as you wish, the only requirement is that your software will have to process the events based on a type and an optional payload.
It is sufficient for your program to process the input events from a JSON file, and to output state snapshots to another file.

Here might be an example input JSON with example events (remember you can redefine the events as you see fit):

{ type: 'REGISTERED', payload: {playerId: 'abc'} }
{ type: 'REGISTERED', payload: {playerId: 'def'} }
{ type: 'REGISTERED', payload: {playerId: 'ghi'}}
{ type: 'UNREGISTERED', payload: {playerId: 'ghi'}}
{ type: 'TOURNAMENT_STARTED', payload: { blinds: '5:10', startingChips: ‘1000’, maxRebuys: 1, ... /*Any other options for poker tournaments that might be needed here */ } }
{type ‘GAME_FINISHED’, payload: {tableId: 1, players: {‘abc’ : {chips: 1500}, ‘def’: {chips: 500}}}
{ type: 'BLINDS_RAISED'}}
{type ‘GAME_FINISHED’, payload: {tableId: 1, players: {‘abc’ : {chips: 200}, ‘def’: {chips: 0}}}
{type: 'PLAYER_REBOUGHT' , payload" {playerId: 'def'}}
{ type: 'BLINDS_RAISED'}}
{type ‘GAME_FINISHED’, payload: {tableId: 1, players: {‘abc’ : {chips: 1200}, ‘def’: {chips: 800}}}
{type ‘GAME_FINISHED’, payload: {tableId: 1, players: {‘abc’ : {chips: 3000}, ‘def’: {chips: 0}}}

After each event, record the snapshot of the current state of the tournament (tables, seats, player rebuys available,


At this link, you'll find a few general tournament rules and some goals for table balance that if you achieve will help you stand out:
[login to view URL]

Habilidades Recomendadas

Feedback do Empregador

“He is communicative, sharp, and follows up well.”

Foto do perfil jordansuarez0, United States.

Principais inscrições deste concurso

Ver Mais Inscrições

Painel de Esclarecimento Público

  • bennygenel
    bennygenel
    • 1 ano atrás

    I was going to submit my work too in a few. Sorry to see that you already choose a winner. Please contact me if you like to see my work too.

    • 1 ano atrás
  • johnthebunny
    johnthebunny
    • 1 ano atrás

    In the rules it is stated that "If two (or more) players are eliminated on the same hand, the player who started the hand with the most chips will be awarded the higher finishing position.", but this would imply that someone could start the hand with the highest chips, be eliminated and retain victory. Wouldn't it be whoever ended the hand with most chips?

    • 1 ano atrás
    1. rmparisi
      rmparisi
      • 1 ano atrás

      Johnthebunny, the case he is talking about is a multi all in pot. Example: P1 has 100 chips, P2 has 20, P3 has 50. P2 shoves all in 20 chips, P3 reshoves 50 chips (pot 70), P1 calls 50 chips (pot 120). Result is P1 wins. P2 and P3 are knockedout. The finals standings should be:
      1) P1
      2) P3
      3) P2
      because P3 started the hand with more chips then P2, the number of chips P1 started with doesn't matter.

      • 1 ano atrás
    2. johnthebunny
      johnthebunny
      • 1 ano atrás

      Oh, I get it now, thanks!

      • 1 ano atrás
  • rmparisi
    rmparisi
    • 1 ano atrás

    Wasn't sure what you wanted to be submitted so I took two screen captures of one of my test cases. Only after I pressed submit did I notice the only difference between states is a Blinds_Raised event. The only difference is the blindLevel was increased. if you need more state images I can try to provide them.

    • 1 ano atrás
  • Roykym
    Roykym
    • 1 ano atrás

    I'm in, will do it in node and then maybe later the code can be changed to typescript.I'll post pictures of the json input and output states as my entry.

    • 1 ano atrás
  • jordansuarez0
    Proprietário do Concurso
    • 1 ano atrás

    @devakanta R., don't worry we are excited to review your work. like I said earlier, we also have another job open too

    • 1 ano atrás
  • dev681999
    dev681999
    • 1 ano atrás

    Hi I will be submitting my entry soon so plz don't close entry till then.

    • 1 ano atrás
  • jordansuarez0
    Proprietário do Concurso
    • 1 ano atrás

    @Johnthebunny, thank you for showing initiative. We are excited to see your work. After you finish, if upon review we approve of the job and chose you, we would love to continue working with you. We have another contest up and will likely be having more. So establishing a go to guy would be great! please private message us for more information. Thank you again!

    • 1 ano atrás
    1. johnthebunny
      johnthebunny
      • 1 ano atrás

      I would love to continue work with you as well, thank you very much!

      • 1 ano atrás
  • jordansuarez0
    Proprietário do Concurso
    • 1 ano atrás

    i provided example input and output jsons but its up to you to design them how you see fit

    • 1 ano atrás
  • jordansuarez0
    Proprietário do Concurso
    • 1 ano atrás

    JSONS will becoming from other programs yes, but you do not need to concern about that. Your software just has the responsibility of outputing JSON states from input JSON events...

    • 1 ano atrás
  • johnthebunny
    johnthebunny
    • 1 ano atrás

    What is going to be the nature of the inputs? Are they going to be server-side, are they going to be called by an external function, are they going to be called by an HTML element (such as "")?
    Should I worry about changing the blind values?
    What are all the possible event types and their payloads?

    My script is finished for all intent and purpose as soon as I get these clarifications.
    Thanks in advance!

    • 1 ano atrás
    1. johnthebunny
      johnthebunny
      • 1 ano atrás

      *such as < input >

      • 1 ano atrás
    2. johnthebunny
      johnthebunny
      • 1 ano atrás

      I'm moving on to testing stage, I'll post pictures of the save states as my entry.

      • 1 ano atrás
  • jordansuarez0
    Proprietário do Concurso
    • 1 ano atrás

    The result should be a json file

    • 1 ano atrás
  • dev681999
    dev681999
    • 1 ano atrás

    Sir, 3 days are very less to provide solution

    • 1 ano atrás
  • dev681999
    dev681999
    • 1 ano atrás

    Well if there is no UI then how do u want the result to be shown?

    • 1 ano atrás
  • dev681999
    dev681999
    • 1 ano atrás

    Hi, do you want UI too? And is it compulsory to use NodeJS? There are many other options which are event-driven like GOLANG. Well its not truely event-driven but can be custom fitted for this software. Assuming that there will be a dedicated server.

    • 1 ano atrás
    1. jordansuarez0
      Proprietário do Concurso
      • 1 ano atrás

      No UI. The idea is to reduce state from events and to spit out state of a Multi Table Tournament. You have flexibility in designing the input events and the output events. Use JSONs.

      NodeJS is strongly preferred. If you want to act with GOLANG, go ahead.

      • 1 ano atrás
  • dev681999
    dev681999
    • 1 ano atrás

    I am really interested in this project as your requirements are very very interesting and fun and pleasure to solve. Do reply ASAP.

    • 1 ano atrás
  • dev681999
    dev681999
    • 1 ano atrás

    Few more queries - Can give a simple small example of an entire round or touranment if possible?

    • 1 ano atrás

Mostrar mais comentários

Como começar com concursos

  • Publique seu concurso

    Poste seu Concurso Rápido e fácil

  • Receba toneladas de entradas

    Obtenha Toneladas de Inscrições De todo o mundo

  • Premie a melhor inscrição

    Premie a melhor inscrição Baixe os arquivos - fácil!

Poste um Concurso ou Junte-se a nós Hoje!