This project is a Mahjong Game in C Raylib (still a work in progress). The object is too pratice C programming and to produce clear code (instead of the fastest one). This project is going to use the mental poker algorithm to assure that no player can cheat and without any third party server.
- don't crash when there is no more tile
- remove the loaded of textures from
logic/tile.c
this should be in visuals only - [~] Write the logic of the game
- [~] Yaku implementation
- All the rules with tests
- Complete game
- Expert Program (AI) that computes probability
- Trained AI from example games ...
- Create an abstraction layer between the GUI and the code that does something with it, to be able to test the GUI.
- Pretty print a game -> complete game in the terminal
- Client Side Rendering (Raylib)
- Try to compile with wasm
- Polynomial implementation (fast if possible)
- basic elgamal cryptographics primitive
- implement an idea of protocol to prepare the cards at the beggining
- (De)Serialisation of message from the network.
- [~] write basic client for multiplayers
- use cryptographic primitive to have no server (only peer to peer)
- Test connection when the program is compiled with wasm
- Implement basic server that connect people together.
- basic game loop
- Handshake to define the map of tiles to cryptographic values
- Games logic in action with communication
- compile to wasm and make work a wasm executable compiled with wasm
Here the different packages that have to be installed for the project to be compiled. (This has been tested on Linux Mint for X11).
sudo apt-get install libxcursor-dev
sudo apt install libxrandr-dev
sudo apt-get install libxinerama-dev
sudo apt-get install libxi-dev
`perror("setsockopt(SO_REUSEADDR) failed");``