chesterbr / minitruco-android

A popular Brazilian card game (Truco) running on Android.
https://play.google.com/store/apps/details?id=me.chester.minitruco&pli=1&hl=pt
BSD 3-Clause "New" or "Revised" License
87 stars 36 forks source link

Inicia jogo internet sempre pelo gerente #191

Closed chesterbr closed 1 year ago

chesterbr commented 1 year ago

Para isso, o gerente tem que sempre estar na posição 1 da sala (o que vai colocar ele na posição 1 da partida).

Isso já acontece quando a sala é criada (porque Sala.adiciona() sempre coloca as pessoas no primeiro slot livre, então o jogador que criar a sala - inicialmente o gerente - vai estar na posição 1). O problema é quando ele sai da sala, porque o jogador mais antigo passa a ser o gerente.

O jeito mais fácil de fazer isso foi definir que o gerente não é mais o jogador mais antigo, e sim o jogador na posição 1 (como já acontece no jogo Bluetooth e no single-player). Isso simplifica o código no servidor (não é preciso mais guardar timestamps de entrada em sala, garantir a unicidade deles e consultar pra achar o gerente), o protocolo (não é preciso mais passar a posição do gerente) e o cliente (ele simplesmente assume que o humano é o gerente se ele estiver na posição 1 da sala/partida).