Skip to content

Latest commit

 

History

120 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

uno++

Simple game inspired by Uno with extra tweaks.

Written using C programming language and uses around 230 kilobytes of RAM.

The name UNO is a registered trademark of its respective owner. All rights to the name, logo, and related branding are fully reserved and protected under applicable trademark laws.

Latest release - v6.0.0

Rules

Uno rules

In short, this game uses official Uno rules with additional house rules.

Most notable differences are those that you don't have to say word uno when you have only one card left; and when +2 and +4 cards are played, next player is not skipped.

Build & run instructions

Installing dependencies

Windows

  • Git
  • Visual Studio with C/C++ development extension
  • CMake
  • json-c (x64 static version from vcpkg)

Linux

Package: Command:
git
DebianArch Linux
apt-get install gitpacman -S git
make
DebianArch Linux
apt-get install makepacman -S make
gcc
DebianArch Linux
apt-get install gccpacman -S gcc
json-c
DebianArch Linux
apt-get install libjson-c-devpacman -S json-c

Compiling & running

Windows

CMake

Base

Number: Step: Command:
1 Clone a repository git clone https://github.com/Andrej123456789/uno_pp
2 Enter the src folder cd uno_pp\src
3 Create the build folder mkdir build
4 Enter the build folder cd build
5 Run CMake cmake .. -DVCPKG_ROOT="path_to_vcpkg"
6 Open Visual Studio and build the solution
7 Run the program located inside the Debug or Release folder .\Debug\uno_pp.exe or .\Release\uno_pp.exe

Client

Number: Step: Command:
8 Enter the client folder cd ..\..\client
9 Create the build folder mkdir build
10 Enter the build folder cd build
11 Run CMake cmake ..
12 Open Visual Studio and build the solution
13 Run the program located inside the Debug or Release folder .\Debug\client_windows.exe or .\Release\client_windows.exe
CMake without Visual Studio

Notice! You still need to have Visual Studio with C/C++ development extension installed. Run following commands inside Developer Command Prompt or Developer Powershell.

Base

Number: Step: Command:
1 Clone a repository git clone https://github.com/Andrej123456789/uno_pp
2 Enter the src folder cd uno_pp\src
3 Create the build folder mkdir build
4 Enter the build folder cd build
5 Run CMake cmake -G "NMake Makefiles" -DCMAKE_C_COMPILER=cl -DCMAKE_CXX_COMPILER=cl -DVCPKG_ROOT="path_to_vcpkg" ..
6 Compile nmake
7 Run the program .\uno_pp.exe

Client

Number: Step: Command:
8 Enter the client folder cd ..\..\client
9 Create the build folder mkdir build
10 Enter the build folder cd build
11 Run CMake cmake -G "NMake Makefiles" -DCMAKE_C_COMPILER=cl -DCMAKE_CXX_COMPILER=cl ..
12 Compile nmake
13 Run the program .\client_windows.exe

Linux

Make

Base

Number: Step: Command:
1 Clone a repository git clone https://github.com/Andrej123456789/uno_pp
2 Enter the src directory cd uno_pp/src
3 Compile make
4 Run the program make run

Client

Number: Step: Command:
5 Enter the client directory cd ../client
6 Compile make
7 Run the program make run
CMake

Base

Number: Step: Command:
1 Clone a repository git clone https://github.com/Andrej123456789/uno_pp
2 Enter the src directory cd uno_pp/src
3 Create the build directory mkdir build
4 Enter the build directory cd build
5 Run CMake cmake ..
6 Compile make
7 Run the program ./uno_pp

Client

Number: Step: Command:
8 Enter the client directory cd ..\..\client
9 Create the build directory mkdir build
10 Enter the build directory cd build
11 Run CMake cmake ..
12 Compile make
13 Run the program ./client_posix

Default settings

default.json:

{
  "match_points": 250, // number of points required to win a match
  "points_path": "settings/points.json", // path to the JSON file storing points
  // from the current working directory

  "players": 2, // number of players in the game [2, INT32_MAX>

  "tweaks": [
    {
      "colors": true, // are colors enabled
      "stacking": true, // is stacking allowed
      "swap_card": true, // is swap card present
      "seven_o": false // is SevenO house rule enabled
    }
  ],

  "network": [
    {
      "enabled": true, // is multiplayer enabled
      "port": 5555 // port number
    }
  ]
}

points.json:

// reset manually after finishing a match
// otherwise, don't change these values manually
{ "Player 0": 0, "Player 1": 0 }

External dependencies

About

Simple game inspired by Uno with extra tweaks

Topics

Resources

Stars

5 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages