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
    • 4 meses 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.

    • 4 meses atrás
  • johnthebunny
    johnthebunny
    • 4 meses 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?

    • 4 meses atrás
    1. rmparisi
      rmparisi
      • 4 meses 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.

      • 4 meses atrás
    2. johnthebunny
      johnthebunny
      • 4 meses atrás

      Oh, I get it now, thanks!

      • 4 meses atrás
  • rmparisi
    rmparisi
    • 4 meses 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.

    • 4 meses atrás
  • Roykym
    Roykym
    • 4 meses 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.

    • 4 meses atrás
  • jordansuarez0
    Proprietário do Concurso
    • 4 meses 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

    • 4 meses atrás
  • dev681999
    dev681999
    • 4 meses atrás

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

    • 4 meses atrás
  • jordansuarez0
    Proprietário do Concurso
    • 4 meses 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!

    • 4 meses atrás
    1. johnthebunny
      johnthebunny
      • 4 meses atrás

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

      • 4 meses atrás
  • jordansuarez0
    Proprietário do Concurso
    • 4 meses atrás

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

    • 4 meses atrás
  • jordansuarez0
    Proprietário do Concurso
    • 4 meses 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...

    • 4 meses atrás
  • johnthebunny
    johnthebunny
    • 4 meses 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!

    • 4 meses atrás
    1. johnthebunny
      johnthebunny
      • 4 meses atrás

      *such as < input >

      • 4 meses atrás
    2. johnthebunny
      johnthebunny
      • 4 meses atrás

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

      • 4 meses atrás
  • jordansuarez0
    Proprietário do Concurso
    • 4 meses atrás

    The result should be a json file

    • 4 meses atrás
  • dev681999
    dev681999
    • 4 meses atrás

    Sir, 3 days are very less to provide solution

    • 4 meses atrás
  • dev681999
    dev681999
    • 4 meses atrás

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

    • 4 meses atrás
  • dev681999
    dev681999
    • 4 meses 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.

    • 4 meses atrás
    1. jordansuarez0
      Proprietário do Concurso
      • 4 meses 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.

      • 4 meses atrás
  • dev681999
    dev681999
    • 4 meses 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.

    • 4 meses atrás
  • dev681999
    dev681999
    • 4 meses atrás

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

    • 4 meses 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!