summaryrefslogtreecommitdiff
path: root/src/manual.c
blob: 6deca9df84547c972df6a34ef7a517056c8a5c73 (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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
/*****************************************************************************
 *                          ___ __  __ ___ _ __                              *
 *                         / _ \\ \/ // _ \ '_ \                             *
 *                        | (_) |>  <|  __/ | | |                            *
 *                         \___//_/\_\\___|_| |_|                            *
 *                                                                           *
 *                             The card game                                 *
 *                                                                           *
 *  Copyright (C) 2011, Reiner Herrmann <reiner@reiner-h.de>                 *
 *                      Mario Kilies <MarioKilies@GMX.net>                   *
 *                                                                           *
 *  This program is free software; you can redistribute it and/or modify     *
 *  it under the terms of the GNU General Public License as published by     *
 *  the Free Software Foundation; either version 3 of the License, or        *
 *  (at your option) any later version.                                      *
 *                                                                           *
 *  This program is distributed in the hope that it will be useful,          *
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of           *
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the             *
 *  GNU General Public License for more details.                             *
 *                                                                           *
 *  You should have received a copy of the GNU General Public License        *
 *  along with this program. If not, see <http://www.gnu.org/licenses/>.     *
 *                                                                           *
 *****************************************************************************/

#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);
}