Skip to content

dlamei/Tichu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

286 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Tichu - Team SALT´D

This is a simple C++ implementation of the game "Tichu". The official game is published by Fata Morgana, you can find the official German rules here and the English ones here. The implementation features a client/server architecture for multiplayer scenarios. It uses Dear ImGui for the GUI, sockpp for the network interface, nlohmann/json for object serialization, and googletest for the unit tests.

Tichu Logo

1. How to

1.1 Compile instructions

This project should compile on Linux, Windows and MacOS. It was mainly tested on Ubuntu 20/22 and Windows 10/11.

1.2 Requirements:

  • C++20
  • OpenGL 3.2+
  • CMake 3.15+

1.3 Build / Compile code

In order to build the project, navigate into the project directory and run the following commands:

  1. In the tichu-project file, mkdir build create your build folder
  2. Go into your build folder cd build
  3. Use cmake to build the make file cmake ..
  4. Build everything you need with make

1.4 Run the Game

  1. go into your build folder cd build
  2. Run server ./Tichu-server
  3. In new consoles 4 clients ./Tichu-client
    Alternatively, in order to start 4 clients simultaneously, there is a script named start_tichu.sh located in the directory scripts.

2. Generating Code Documentation with Doxygen

Before the code documentation can be generated, Doxygen needs to be installed. This can be done by cloning the git repository and following the install instructions.
After Doxygen has been installed, navigate into the directory doxygen_doc. Post the command doxygen Doxyfile into the terminal (Doxyfile refers to the file name within the directory). The Doxygen documentation will be generated within a folder named html. The file named index.html will land you on the main page.

3. Quick guide of the GUI

3.1 Login Screen

After starting the client, the first screen is going to be the login screen. Here every player enters:

  • the server address
  • the server port
  • their player name
  • their preferred team (Team A , Team B or a random selection)

If one player choses the team selection option random, all players will be distributed randomely.
When all details are entered, the player clicks on the CONNECT-button. If the player belongs to the first 3 players joining, they will be forwarded to the game lobby.

Login-Screen

3.2 Lobby and starting the game

As long as not all players have been connected yet, the waiting players will be placed in the lobby.

Lobby

As soon as all players have joined, they will be asked to start the game.

start_game

3.3 Examples of game plays and situations

The following pictures show a couple of exemplary situations, which one will encouter while playing a round.

Calling a Grand Tichu

grand_tichu

Selecting to swap cards

swap_cards

Wishing for a card and the respective answer

wish_question

wish_answer

Playing a combination and winning a stich

combination

winning_stich

Playing a bomb

bomb

About

C++ implementation of the game "Tichu".

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors