annotate plugins/hangman/hangman.md @ 295:6bf457b71e0c

Irccd: add new libirccd-test for unit tests
author David Demelier <markand@malikania.fr>
date Sun, 09 Oct 2016 12:05:11 +0200
parents c143682678b9
children 722f2bbd654a
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
1 ---
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
2 title: "Hangman plugin"
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
3 header: "Hangman plugin"
275
c143682678b9 CMake: improve documentation related to plugins
David Demelier <markand@malikania.fr>
parents: 141
diff changeset
4 guide: yes
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
5 ---
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
6
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
7 Hangman is a plugin to play the hangman game.
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
8
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
9 ## Installation
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
10
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
11 The plugin **hangman** is distributed with irccd. To enable it add the following to your `plugins` section:
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
12
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
13 ````ini
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
14 [plugins]
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
15 hangman = ""
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
16 ````
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
17
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
18 ## Usage
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
19
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
20 The **hangman** plugin starts when a user execute its special command with no arguments.
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
21
30
1ea775153cdc Plugin hangman: various fixes in the documentation
David Demelier <markand@malikania.fr>
parents: 20
diff changeset
22 ````nohighlight
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
23 markand: !hangman
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
24 irccd: markand, the game is started, the word to find is: _ _ _ _ _ _ _ _ _ _ _
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
25 ````
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
26
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
27 ### Proposal
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
28
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
29 There are two ways for proposing a response to the game. You can either just ask for a letter or for a whole word.
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
30
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
31 #### By letter
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
32
30
1ea775153cdc Plugin hangman: various fixes in the documentation
David Demelier <markand@malikania.fr>
parents: 20
diff changeset
33 When asking a letter, the message must be one letter.
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
34
20
8384df86e195 Docs: use nohighlight on non code, #418
David Demelier <markand@malikania.fr>
parents: 0
diff changeset
35 ````nohighlight
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
36 markand: c
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
37 irccd: markand, nice! the word is now c _ _ _ _
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
38 jean: k
30
1ea775153cdc Plugin hangman: various fixes in the documentation
David Demelier <markand@malikania.fr>
parents: 20
diff changeset
39 irccd: jean, there is no 'k'.
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
40 ````
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
41
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
42 #### By full word
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
43
30
1ea775153cdc Plugin hangman: various fixes in the documentation
David Demelier <markand@malikania.fr>
parents: 20
diff changeset
44 When asking by a word, just put one word as command argument.
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
45
20
8384df86e195 Docs: use nohighlight on non code, #418
David Demelier <markand@malikania.fr>
parents: 0
diff changeset
46 ````nohighlight
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
47 markand: !hangman couch
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
48 irccd: markand, this is not the word.
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
49 jean: !hangman candy
30
1ea775153cdc Plugin hangman: various fixes in the documentation
David Demelier <markand@malikania.fr>
parents: 20
diff changeset
50 irccd: jean, congratulations, the word is candy.
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
51 ````
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
52
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
53 ## Configuration
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
54
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
55 The following options are available under the `[plugin.hangman]` section:
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
56
30
1ea775153cdc Plugin hangman: various fixes in the documentation
David Demelier <markand@malikania.fr>
parents: 20
diff changeset
57 - **file**: (string) the path to the database file (Optional, default: configuration directory),
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
58 - **collaborative**: (bool) set to true to enable collaborative mode, a player can't propose two consecutives proposals (Optional, default: true),
141
2ce88e3a4759 Plugin hangman: use new format section, #410
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
59
2ce88e3a4759 Plugin hangman: use new format section, #410
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
60 **Deprecated in irccd 2.1.0:**
2ce88e3a4759 Plugin hangman: use new format section, #410
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
61
2ce88e3a4759 Plugin hangman: use new format section, #410
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
62 - **format-asked**: Use `[format.hangman] asked` instead,
2ce88e3a4759 Plugin hangman: use new format section, #410
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
63 - **format-dead**: Use `[format.hangman] dead` instead,
2ce88e3a4759 Plugin hangman: use new format section, #410
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
64 - **format-found**: Use `[format.hangman] found` instead,
2ce88e3a4759 Plugin hangman: use new format section, #410
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
65 - **format-running**: Use `[format.hangman] running` instead,
2ce88e3a4759 Plugin hangman: use new format section, #410
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
66 - **format-start**: Use `[format.hangman] start` instead,
2ce88e3a4759 Plugin hangman: use new format section, #410
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
67 - **format-win**: Use `[format.hangman] win` instead,
2ce88e3a4759 Plugin hangman: use new format section, #410
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
68 - **format-wrong-word**: Use `[format.hangman] wrong-word` instead,
2ce88e3a4759 Plugin hangman: use new format section, #410
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
69 - **format-wrong-letter**: Use `[format.hangman] wrong-letter` instead.
2ce88e3a4759 Plugin hangman: use new format section, #410
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
70
2ce88e3a4759 Plugin hangman: use new format section, #410
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
71 ## Formats
2ce88e3a4759 Plugin hangman: use new format section, #410
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
72
2ce88e3a4759 Plugin hangman: use new format section, #410
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
73 The **hangman** plugin supports the following formats in `[format.hangman]` section:
2ce88e3a4759 Plugin hangman: use new format section, #410
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
74
2ce88e3a4759 Plugin hangman: use new format section, #410
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
75 - **asked**: (string) when a letter has been already asked but present in the word (Optional),
2ce88e3a4759 Plugin hangman: use new format section, #410
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
76 - **dead**: (string) when the man was hung (Optional),
2ce88e3a4759 Plugin hangman: use new format section, #410
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
77 - **found**: (string) when a correct letter has been placed (Optional),
2ce88e3a4759 Plugin hangman: use new format section, #410
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
78 - **running**: (string) when a game is requested but it's already running (Optional),
2ce88e3a4759 Plugin hangman: use new format section, #410
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
79 - **start**: (string) when the game starts (Optional),
2ce88e3a4759 Plugin hangman: use new format section, #410
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
80 - **win**: (string) when the game succeeded (Optional),
2ce88e3a4759 Plugin hangman: use new format section, #410
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
81 - **wrong-word**: (string) when a word proposal is wrong (Optional),
2ce88e3a4759 Plugin hangman: use new format section, #410
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
82 - **wrong-letter**: (string) when a letter proposal is wrong (Optional).
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
83
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
84 ### Keywords supported
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
85
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
86 The following keywords are supported:
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
87
44
c4fe9a8b1a62 Plugin hangman: fix usage of server keyword and document command, plugin, #392
David Demelier <markand@malikania.fr>
parents: 30
diff changeset
88 | Format | Keywords | Notes |
c4fe9a8b1a62 Plugin hangman: fix usage of server keyword and document command, plugin, #392
David Demelier <markand@malikania.fr>
parents: 30
diff changeset
89 |-------------------------|----------------------------------------------------|---------------------------------|
c4fe9a8b1a62 Plugin hangman: fix usage of server keyword and document command, plugin, #392
David Demelier <markand@malikania.fr>
parents: 30
diff changeset
90 | (any) | channel, command, nickname, origin, plugin, server | all formats |
141
2ce88e3a4759 Plugin hangman: use new format section, #410
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
91 | **asked** | letter | the letter proposal |
2ce88e3a4759 Plugin hangman: use new format section, #410
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
92 | **dead** | word | the word to find |
2ce88e3a4759 Plugin hangman: use new format section, #410
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
93 | **found** | word | the hidden word |
2ce88e3a4759 Plugin hangman: use new format section, #410
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
94 | **start** | word | the hidden word |
2ce88e3a4759 Plugin hangman: use new format section, #410
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
95 | **win** | word | the word to find |
2ce88e3a4759 Plugin hangman: use new format section, #410
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
96 | **wrong-word** | word | the invalid word proposal |
2ce88e3a4759 Plugin hangman: use new format section, #410
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
97 | **wrong-letter** | letter | the letter proposal |
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
98
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
99 Example:
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
100
30
1ea775153cdc Plugin hangman: various fixes in the documentation
David Demelier <markand@malikania.fr>
parents: 20
diff changeset
101 <div class="panel panel-info">
1ea775153cdc Plugin hangman: various fixes in the documentation
David Demelier <markand@malikania.fr>
parents: 20
diff changeset
102 <div class="panel-heading">~/.config/irccd/irccd.conf</div>
1ea775153cdc Plugin hangman: various fixes in the documentation
David Demelier <markand@malikania.fr>
parents: 20
diff changeset
103 <div class="panel-body">
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
104 ````ini
141
2ce88e3a4759 Plugin hangman: use new format section, #410
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
105 [format.hangman]
2ce88e3a4759 Plugin hangman: use new format section, #410
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
106 win = "nice job, the word was #{word}!"
2ce88e3a4759 Plugin hangman: use new format section, #410
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
107 wrong-letter = "please try again, there is no #{letter}"
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
108 ````
30
1ea775153cdc Plugin hangman: various fixes in the documentation
David Demelier <markand@malikania.fr>
parents: 20
diff changeset
109 </div>
1ea775153cdc Plugin hangman: various fixes in the documentation
David Demelier <markand@malikania.fr>
parents: 20
diff changeset
110 </div>
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
111
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
112 ## Database file
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
113
30
1ea775153cdc Plugin hangman: various fixes in the documentation
David Demelier <markand@malikania.fr>
parents: 20
diff changeset
114 The database file must contains one word per line, it must be saved as UTF-8.
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
115
30
1ea775153cdc Plugin hangman: various fixes in the documentation
David Demelier <markand@malikania.fr>
parents: 20
diff changeset
116 <div class="panel panel-info">
1ea775153cdc Plugin hangman: various fixes in the documentation
David Demelier <markand@malikania.fr>
parents: 20
diff changeset
117 <div class="panel-heading">~/.config/irccd/plugin/hangman/words.conf</div>
1ea775153cdc Plugin hangman: various fixes in the documentation
David Demelier <markand@malikania.fr>
parents: 20
diff changeset
118 <div class="panel-body">
20
8384df86e195 Docs: use nohighlight on non code, #418
David Demelier <markand@malikania.fr>
parents: 0
diff changeset
119 ````nohighlight
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
120 sky
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
121 irccd
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
122 FreeBSD
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
123 door
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
124 cat
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
125 ````