PROJECT IS DONE
Simple game inspired by Uno in terminal with some extra features and networking in mind
Written using C programming language mainly
Uses around 230 kilobytes of RAM (it depends how long you play)
Repo is called uno
because ++
couldn't fit in repo name
In short, this game mostly uses official Uno rules which you can find on link above with swap card and special mode from Crazy Games.
- New deck will not be generated from played cards
- If 0 is played and
Seven-O
rule is enabled, all players except player which receives other players' cards get one card because there is only one winner in the both round and match - There can be players how much the computer allows (segmentation fault is an issue mostly)
- There is no
Jump-In
rule which you can find on some implementations
- Basic AI (TODO: get rid of cards guesses)
- Colors
- Gameplay (most of gameplay)
- Networking (TODO: implement it fully)
- Nice graphics
- Settings (in .json files)
- Windows port (Win32 API)
- Install
gcc
compiler, if you use Windows useWSL
,Cygwin
orMinGW
. - Install
json-c
library- Debian based distos:
apt-get install libjson-c-dev
- Arch based distos:
pacman -S json-c
- Distors which use
yum
package manager:yum install json-c-devel
- Debian based distos:
- Go to
src
folder/directory and type in your terminal (emulator)make
and then if you want run fromMakefile
(be aware that by default will load default config file) type in your terminal (emulator)make run
. - To clean
*.o
, simply type in your terminal (emulator)make clean
. - To clean everything (
*.o
files anduno
executable) type in your terminal (emulator)make full_clean
- Follow next rules to see what each settings represents.
- Points required for players to win match
- Path of file where points will be stored
- debug_mode [0 - disabled, 1 - enabled]
- colors [0 - disabled, 1 - enabled]
- number of players
special
[
{
"swap_card": [0 - disabled, 1 - enabled],
"stacking": [0 - disabled, 1 - enabled],
"seven_o": [0 - disabled, 1 - enabled]
}
]
- AI sequence {[0 - disabled, 1 - enabled] per player}
network
[
{
"network_sequence": {[0 - disabled, 1 - enabled] per player} // also see client.c on how to properly connect client to server,
"ip": "127.0.0.1", // example
"port": 5956 // example
}
]
points.txt
deleted upon winning match, to fix this problem, restart program- If you get weird letters before string, try to disable colors
If you find new issue or can't fix issues above, report issue on GitHub with needed informations.
One small part was made on my live stream, just search my name for YouTube channel