Update README and convert to Markdown.
This commit is contained in:
parent
bffa11361a
commit
5708e06b5e
118
README
118
README
|
|
@ -1,118 +0,0 @@
|
|||
Supybot Word Games Plugin
|
||||
=========================
|
||||
|
||||
A few word games to play in IRC with Supybot!
|
||||
|
||||
These games rely on a dictionary file (not included). On Ubuntu, you can
|
||||
normally just install the 'wamerican' package. See the configurable variables
|
||||
to customize.
|
||||
|
||||
Configuration:
|
||||
|
||||
plugins.Wordgames.wordFile:
|
||||
Path to the dictionary file.
|
||||
|
||||
Default: /usr/share/dict/american-english
|
||||
|
||||
plugins.Wordgames.wordRegexp:
|
||||
A regular expression defining what a valid word looks like. This will
|
||||
be used to filter words from the dictionary file that contain undesirable
|
||||
characters (proper names, hyphens, accents, etc.). You will probably have
|
||||
to quote the string when setting, e.g.:
|
||||
|
||||
@config plugins.Wordgames.wordRegexp "^[a-x]+$"
|
||||
(No words containing 'y' or 'z' would be allowed by this.)
|
||||
|
||||
Default: ^[a-z]+$
|
||||
|
||||
plugins.Wordgames.worddleDelay
|
||||
The length (in seconds) of the pre-game period where players can join a
|
||||
new Worddle game.
|
||||
|
||||
Default: 15
|
||||
|
||||
plugins.Wordgames.worddleDuration
|
||||
The length (in seconds) of the active period of a Worddle game, when
|
||||
players can submit guesses.
|
||||
|
||||
Default: 90
|
||||
|
||||
Commands:
|
||||
|
||||
worddle
|
||||
Start a new Worddle game. Use "worddle join" to join a game that someone
|
||||
else has started.
|
||||
|
||||
wordshrink [difficulty]
|
||||
Start a new WordShrink game. Difficulty values: [easy] medium hard evil
|
||||
|
||||
wordtwist [difficulty]
|
||||
Start a new WordTwist game. Difficulty values: [easy] medium hard evil
|
||||
|
||||
wordquit
|
||||
Give up on any currently running game.
|
||||
|
||||
Game Rules:
|
||||
|
||||
Worddle is a clone of a well-known puzzle game involving a 4x4 grid of
|
||||
randomly-placed letters. Find words on the board by starting at a particular
|
||||
letter and moving to adjacent letters (in all 8 directions, diagonals ok).
|
||||
Words must be 3 letters or longer to be considered. At the end of the game,
|
||||
if a word was found by multiple players, it is not counted. The remaining
|
||||
words contribute to your score (1 point per letter).
|
||||
|
||||
WordShrink and WordTwist are word chain (or word ladder) style games.
|
||||
A puzzle will be presented in the form:
|
||||
|
||||
a > --- > --- > d
|
||||
|
||||
... and your job is to come up with a response of the form b > c. (You can
|
||||
optionally include the start and end words in your response, as long as each
|
||||
word is separated by a greater-than sign.)
|
||||
|
||||
In WordShrink, you remove one letter from each successive word and rearrange
|
||||
the letters to form a new word. Example session:
|
||||
|
||||
<mike> @wordshrink
|
||||
<supybot> WordShrink: lights > ----- > ---- > sit
|
||||
<supybot> (12 possible solutions)
|
||||
<mike> sight > this
|
||||
<supybot> WordShrink: mike got it!
|
||||
<supybot> WordShrink: lights > sight > this > sit
|
||||
<ben> lights > hilts > hits > sit
|
||||
<supybot> ben: Your solution is also valid.
|
||||
|
||||
In WordTwist, you change exactly one letter in each successive word to form a
|
||||
new word (no rearranging). Example session:
|
||||
|
||||
<mike> @wordtwist medium
|
||||
<supybot> WordTwist: mass > ---- > ---- > ---- > jade
|
||||
<supybot> (5 possible solutions)
|
||||
<mike> mars > mare > made
|
||||
<supybot> WordTwist: mike got it!
|
||||
<supybot> WordTwist: mass > mars > mare > made > jade
|
||||
|
||||
A Technical Note About Worddle:
|
||||
|
||||
This game sends a lot of PRIVMSGs (between the channel and all the players,
|
||||
the messages add up). It attempts to send them in a single PRIVMSG if
|
||||
possible to combine targets.
|
||||
|
||||
Supybot: I run Supybot with the latest git (there are show-stopper bugs in
|
||||
0.83.4.1) and the Twisted driver (but Socket should work as well).
|
||||
|
||||
IRC Server: I had to tune my IRC server to handle this game, due to the large
|
||||
amount of messages it sends. You may find that it has problems on your server
|
||||
due to flood controls (bot may be either fake lagged or kicked from the
|
||||
server). If the game seems extremely slow, it is either an old Supybot or the
|
||||
server is throttling you.
|
||||
|
||||
I would like to add an option to tune the verbosity of the game to mitigate
|
||||
this for restrictive servers.
|
||||
|
||||
Credit:
|
||||
|
||||
Copyright 2012 Mike Mueller <mike@subfocal.net>
|
||||
Released under the WTF public license: http://sam.zoy.org/wtfpl/
|
||||
|
||||
Thanks to Ben Schomp <ben@benschomp.com> for the inspiration and QA testing.
|
||||
|
|
@ -0,0 +1,156 @@
|
|||
Supybot Word Games Plugin
|
||||
=========================
|
||||
|
||||
This is a plugin for the popular IRC bot Supybot that implements a few
|
||||
word games to play in your IRC channel.
|
||||
|
||||
Typical installation process:
|
||||
|
||||
1. Clone this git repository in your downloads directory.
|
||||
2. Create a symlink called `Wordgames` in supybot/plugins pointing to it.
|
||||
3. In IRC, load Wordgames.
|
||||
|
||||
**Note:** These games rely on a dictionary file (not included). On
|
||||
Ubuntu, you can normally just install the `wamerican` package. See
|
||||
the Configurable Variables section to customize.
|
||||
|
||||
Commands
|
||||
--------
|
||||
|
||||
The following commands are exposed by this plugin:
|
||||
|
||||
>`worddle [join]`
|
||||
>> Start a new Worddle game (with no arguments). Use "worddle join"
|
||||
>> to join a game that someone else has started.
|
||||
|
||||
>`wordshrink [difficulty]`
|
||||
>> Start a new WordShrink game. Difficulty values: [easy] medium hard evil
|
||||
|
||||
>`wordtwist [difficulty]`
|
||||
>> Start a new WordTwist game. Difficulty values: [easy] medium hard evil
|
||||
|
||||
>`wordquit`
|
||||
>> Shut down any currently running game. One solution will be displayed for
|
||||
>> the word chain games, to satisfy your curiosity.
|
||||
|
||||
Game Rules
|
||||
----------
|
||||
|
||||
### Worddle
|
||||
|
||||
Worddle is a clone of a well-known puzzle game involving a 4x4 grid of
|
||||
randomly-placed letters. It's a timed, multiplayer game where you compete
|
||||
to find words that your opponents didn't find.
|
||||
|
||||
When you start a new game, or join an existing game, the bot will send you a
|
||||
private message indicating that you are playing. All your guesses must be
|
||||
sent to the bot in this private conversation, so your opponents can't see your
|
||||
guesses. At the end of the game, the results will be presented in the channel
|
||||
where the game was started.
|
||||
|
||||
To be a valid guess, words must:
|
||||
|
||||
* be made of adjacent letters on the board (in all 8 directions, diagonals ok)
|
||||
* be at least 3 letters in length
|
||||
* appear in the dictionary file.
|
||||
|
||||
At the end of the game, if a word was found by multiple players, it is not
|
||||
counted. The remaining words contribute to your score, at 1 point per letter.
|
||||
|
||||
### WordShrink
|
||||
|
||||
WordShrink and WordTwist are word chain (or word ladder) style games.
|
||||
A puzzle will be presented in the form:
|
||||
|
||||
word1 > --- > --- > word4
|
||||
|
||||
... and your job is to come up with a response of the form `word2 > word3`
|
||||
that completes the puzzle. (You can optionally include the start and end
|
||||
words in your response, as long as each word is separated by a greater-than
|
||||
sign.)
|
||||
|
||||
In WordShrink, each word must be made by removing one letter from the
|
||||
preceding word and rearranging the letters to form a new word. Example
|
||||
session:
|
||||
|
||||
<mike> @wordshrink
|
||||
<supybot> WordShrink: lights > ----- > ---- > sit
|
||||
<supybot> (12 possible solutions)
|
||||
<mike> sight > this
|
||||
<supybot> WordShrink: mike got it!
|
||||
<supybot> WordShrink: lights > sight > this > sit
|
||||
<ben> lights > hilts > hits > sit
|
||||
<supybot> ben: Your solution is also valid.
|
||||
|
||||
### WordTwist
|
||||
|
||||
WordTwist is very similar to WordShrink, except that the way you manipulate
|
||||
the words to solve the puzzle is changed. In WordTwist, you change exactly
|
||||
one letter in each successive word to form a new word (no rearranging is
|
||||
allowed). Example session:
|
||||
|
||||
<mike> @wordtwist medium
|
||||
<supybot> WordTwist: mass > ---- > ---- > ---- > jade
|
||||
<supybot> (5 possible solutions)
|
||||
<mike> mars > mare > made
|
||||
<supybot> WordTwist: mike got it!
|
||||
<supybot> WordTwist: mass > mars > mare > made > jade
|
||||
|
||||
Configuration Variables
|
||||
-----------------------
|
||||
|
||||
> `plugins.Wordgames.wordFile`
|
||||
>> Path to the dictionary file.
|
||||
>>
|
||||
>> Default: `/usr/share/dict/american-english`
|
||||
|
||||
> `plugins.Wordgames.wordRegexp`
|
||||
>> A regular expression defining what a valid word looks like. This will
|
||||
>> be used to filter words from the dictionary file that contain undesirable
|
||||
>> characters (proper names, hyphens, accents, etc.). You will probably have
|
||||
>> to quote the string when setting, e.g.:
|
||||
>>
|
||||
>> @config plugins.Wordgames.wordRegexp "^[a-x]+$"
|
||||
>>
|
||||
>> (No words containing 'y' or 'z' would be allowed by this.)
|
||||
>>
|
||||
>> Default: `^[a-z]+$`
|
||||
|
||||
> `plugins.Wordgames.worddleDelay`
|
||||
>> The length (in seconds) of the pre-game period where players can join a
|
||||
>> new Worddle game.
|
||||
>>
|
||||
>> Default: `15`
|
||||
|
||||
> `plugins.Wordgames.worddleDuration`
|
||||
>> The length (in seconds) of the active period of a Worddle game, when
|
||||
>> players can submit guesses.
|
||||
>>
|
||||
>> Default: `90`
|
||||
|
||||
A Technical Note About Worddle
|
||||
------------------------------
|
||||
|
||||
This game sends a lot of PRIVMSGs (between the channel and all the players,
|
||||
the messages add up). It attempts to send them in a single PRIVMSG if
|
||||
possible to combine targets.
|
||||
|
||||
Supybot: I run Supybot with the latest git (there are show-stopper bugs in
|
||||
0.83.4.1) and the Twisted driver (but Socket should work as well).
|
||||
|
||||
IRC Server: I had to tune my IRC server to handle this game, due to the large
|
||||
amount of messages it sends. You may find that it has problems on your server
|
||||
due to flood controls (bot may be either fake lagged or kicked from the
|
||||
server). If the game seems extremely slow, it is either an old Supybot or the
|
||||
server is throttling you.
|
||||
|
||||
I would like to add an option to tune the verbosity of the game to mitigate
|
||||
this for restrictive servers.
|
||||
|
||||
Credit
|
||||
------
|
||||
|
||||
Copyright 2012 Mike Mueller <mike@subfocal.net>
|
||||
Released under the WTF public license: http://sam.zoy.org/wtfpl/
|
||||
|
||||
Thanks to Ben Schomp <ben@benschomp.com> for the inspiration and QA testing.
|
||||
Loading…
Reference in New Issue