GitXplorerGitXplorer
p

Mental_Mahjong

public
0 stars
0 forks
0 issues

Commits

List of commits on branch main.
Unverified
b30f1ec44f81f2d99fd0c1442c3b9bfa2ac3398b

update a test

DDidictateur committed a month ago
Unverified
9b65364a108273d8e42a449c2250176cddf9ef75

fixed makefile issues

DDidictateur committed a month ago
Unverified
917d8fd6d8a8d4c6c4e3483a74cdac1b790af39a

added tests and fixed issues

DDidictateur committed a month ago
Unverified
cdc56154a07c91063ac800cb3faabb128b3f3295

simplified tests

DDidictateur committed a month ago
Unverified
5732a1751c5f15b6272df0505d2e34e9fd29bcda

renamed function

DDidictateur committed a month ago
Unverified
b7b937f85b2e9413279d3c1ebc1ac725536a02c8

fixxed a leak

DDidictateur committed a month ago

README

The README file for this repository.

The logo of this project

Metal Mahjong

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.

TODO (don't hesitate to contribute)

Model of the Game (model/)

  • [ ] don't crash when there is no more tile
  • [x] 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 ...

View (view/)

  • [ ] 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

Cryptographic(crypto/)

  • [ ] Polynomial implementation (fast if possible)
  • [ ] basic elgamal cryptographics primitive
  • [ ] implement an idea of protocol to prepare the cards at the beggining

Server-Client for Multiplayer(client)

  • [ ] (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
  • [x] Implement basic server that connect people together.

Controller of the game (manage view and model) (controller/)

  • [x] basic game loop
  • [ ] Handshake to define the map of tiles to cryptographic values
  • [ ] Games logic in action with communication

Put everything on a website(website)

  • [ ] compile to wasm and make work a wasm executable compiled with wasm

Dependency for Ubuntu

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");``