summaryrefslogtreecommitdiff
path: root/src/manual.c
blob: 20b3cb421fc7763bde4d38305f590ba8578f5fee (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#include "manual.h"
#include <stdio.h>
#include <stdlib.h>

static const char* manual_text =
"Oxen is a multiplayer card game for up to 10 players.\n\n"
" HOW TO START (see also 'oxen -h'):\n\n"
"   One player has to host the game and needs to specify '-l' to start\n"
"   a server on the specified port ('-p port', default is 12345).\n"
"   It will wait for the specified number of clients ('-n num') to connect\n"
"   before starting the game. After the server is listening, a local client\n"
"   will automatically be started and connected to it.\n"
"   When it is running, other players can connect to it by specifying its\n"
"   hostname or IP address ('-s address') and port number (if different to\n"
"   default).\n"
"   Players can set their nickname with '-u name' or by setting the USER\n"
"   environment variable.\n\n"
" HOW TO PLAY:\n\n"
"   Oxen is inspired by the card game \"6 nimmt!\".\n"
"   It consists of a main stack with cards numbered from 1 to 104 and of 4 open\n"
"   table stacks that grow every round, but must not get larger than 5 cards.\n"
"   At the beginning of the game the main stack is shuffled and 4 cards are\n"
"   drawn which start 4 new table stacks. Then the first round starts.\n"
"   In every round each player is dealt 10 cards (or less if there are not\n"
"   enough cards in the main stack). Every player chooses one card he wants\n"
"   to put on a table stack. When every player has selected their card, they\n"
"   are revealed to the others and they will be placed on table stack depending\n"
"   on their value (in ascending order, smallest card will be placed first).\n"
"   A card has to be placed on a stack where the upmost card is lower than\n"
"   itself. If there are multiple stacks with lower top cards, the one with\n"
"   the smallest difference to the selected card has to be used. If a stack\n"
"   contains 6 cards after placing a card on it, the player who chose the card\n"
"   has to take the stack without the top card and add them to his score\n"
"   (therefore the name \"6 nimmt\").\n"
"   If a card can not be placed on any table stack (because it is lower than\n"
"   the top cards of all stacks), the player can create a new stack with his\n"
"   chosen card by selecting a table stack and add its cards to his score.\n"
"   After placing the cards of all players, the next turn begins where the\n"
"   players select their cards.\n"
"   When no hand cards are left, new cards are dealt from the main stack.\n"
"   The game ends when no more cards can be dealt to all players from the\n"
"   main stack. The player with the lowest score (negative points) will win\n"
"\n";

/**
 * Print manual on stdout
 */
void print_manual(void)
{
	printf("%s", manual_text);
	exit(EXIT_SUCCESS);
}