juegos

Juegos de terminal de Pancho: Catan (TUI, GUI, web, servidor, PicoCalc), ajedrez, calculadora y minijuegos
git clone https://git.lu3dhn.xyz/juegos.git
Log | Files | Refs

host.h (1256B)


      1 /* host.h - una partida corriendo en este nodo: autoridad + bots + dueƱos de asientos.
      2  * Lo usan el cliente Linux (hotseat / host LAN), el servidor y la PicoCalc "A". */
      3 #ifndef HOST_H
      4 #define HOST_H
      5 
      6 #include "catan.h"
      7 
      8 enum SeatKind { SEAT_OPEN, SEAT_LOCAL, SEAT_REMOTE, SEAT_BOT, SEAT_NEUTRAL };
      9 
     10 typedef struct {
     11     Auth    a;
     12     uint8_t kind[MAXP];
     13     char    name[MAXP][20];
     14     Rng     brng;
     15     SearchCfg bot;           /* bots: iters 0 = heuristico, si no ISMCTS (search.c) */
     16     uint16_t offer_wait;     /* pasos que un bot lleva esperando respuestas a su oferta */
     17     void  (*on_move)(void *ctx, const Move *m);   /* cada movida resuelta, sin redactar */
     18     void   *ctx;
     19 } Host;
     20 
     21 /* kinds: tipo de cada asiento (los neutrales se marcan solos). */
     22 void host_init(Host *h, const Opts *o, uint64_t seed, const uint8_t kinds[MAXP],
     23                void (*on_move)(void *, const Move *), void *ctx);
     24 /* seat = quien la manda (debe coincidir con m->p). */
     25 int  host_submit(Host *h, int seat, Move *m);
     26 /* Hace una movida de bot si alguno tiene que actuar. */
     27 bool host_bot_step(Host *h);
     28 bool host_bot_pending(const Host *h);
     29 /* Reproduce una movida del log guardado (se re-resuelve igual). */
     30 int  host_replay(Host *h, const Move *m);
     31 
     32 #endif