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

main.c (1050B)


      1 /* main.c - calculadora: ./calc (terminal), ./calc --gui, ./calc --eval "texto",
      2  * ./calc --selftest [--deep] */
      3 #include <stdio.h>
      4 #include <stdlib.h>
      5 #include <string.h>
      6 #include <time.h>
      7 #include "selftest.h"
      8 #include "calc.h"
      9 #include "store.h"
     10 
     11 int gui_run(Calc *c, int scale);
     12 int tui_run(Calc *c);
     13 
     14 static uint32_t rnd(void) { return (uint32_t)rand(); }
     15 
     16 int main(int argc, char **argv)
     17 {
     18     bool deep = false, gui = false;
     19     int scale = 2;
     20     for (int i = 1; i < argc; i++) {
     21         if (!strcmp(argv[i], "--deep")) deep = true;
     22         else if (!strcmp(argv[i], "--gui")) gui = true;
     23         else if (!strcmp(argv[i], "--scale") && i + 1 < argc) scale = atoi(argv[++i]);
     24     }
     25     for (int i = 1; i < argc; i++) {
     26         if (!strcmp(argv[i], "--selftest")) return selftest_run(deep);
     27         if (!strcmp(argv[i], "--eval") && i + 1 < argc) return eval_cli(argv[i + 1]);
     28     }
     29     srand((unsigned)time(0));
     30     static Calc c;
     31     calc_init(&c);
     32     c.rand = rnd;
     33     store_load(&c);
     34     return gui ? gui_run(&c, scale) : tui_run(&c);
     35 }