Coder Social home page Coder Social logo

dlamei / tichu Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 0.0 32.1 MB

License: GNU General Public License v3.0

CMake 1.01% C++ 44.21% Makefile 0.04% Starlark 0.08% Shell 0.06% HTML 37.81% SCSS 0.01% C 14.20% Python 1.35% Objective-C 0.47% CSS 0.09% JavaScript 0.63% GDB 0.01% Jinja 0.01% Swift 0.01% Meson 0.01% Cuda 0.01% GLSL 0.01% TypeScript 0.01%

tichu's Introduction

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

tichu's People

Contributors

srelling avatar dlamei avatar ga-rohw avatar cttinaa avatar zyxer- avatar nereus248 avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.