The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

IRC::Bot::Hangman - An IRC hangman

SYNOPSIS

  use IRC::Bot::Hangman;
  IRC::Bot::Hangman->new(
    channels => [ '#hangman' ],
    nick     => 'hangman',
    server   => 'irc.blablablablah.bla',
    word_list_name => 'too_easy',
    games    => 3,
  )->run;
  print "Finished\n";

COMMANDS

  <letter>? : guess a letter
  guess <letter> : guess a letter
  guess <word> : guess an entire word
  <hangman> help - help instructions
  <hangman> play : Start a new game or display current game
  <hangman> quiet : keep quiet between guesses
  <hangman> talk : Talk between guesses

DESCRIPTION

This module provides a useless IRC bot which enables you to play hangman, the classic word game. It comes shipped with a list of ~2000 english words by default. The architecture is plugin based, words, commands and responses can be extended at will by adding new modules.

The main motivation was to provide a multi-player text based game for children to help them practising writing.

PLUGINS

The plugins are managed by

  IRC::Bot::Hangman::WordList
  IRC::Bot::Hangman::Command
  IRC::Bot::Hangman::Response

METHODS

word_list( $list )

Get or set the word list as an array ref. A default word list of ~2000 english words is provided if no list is set.

load_word_list( name )

Returns a default english words list from IRC::Bot::Hangman::WordList

word_list_name( $name )

Get or set the word list name. It must be an installed module in IRC::Bot::Hangman::WordList::xxx The default provided is 'default' = IRC::Bot::Hangman::WordList::Default

games( integer )

Get or set the number of games before ending. undef means infinity.

game( $game )

Get or set the hangman game. The default value is a Games::GuessWord instance with word_list() word list.

new_game()

Reset the game

replay()

Reset the game unless it is the last game as counted by games()

can_talk()

Get set can_talk, used by tick to display reminders.

load_game()

Returns a Games::GuessWord instance

msg_guess()

Displays the word to guess

get_delay()

Returns a random time calculated: delay() * (1 + rand(4)) seconds

delay()

Get set base delay in seconds. Default is 30s.

input()

Get/set input

response()

Get/set response

set_response( type )

Sets the response from a response type

get_a_msg( type )

Returns a msg of a given type

guess_word( word )

Guess a word : success or one chance less

guess_letter( letter )

Guess a letter : match or one chance less

conclusion()

Displays an end of game message : sucess or lost

give_advice( guess )

Bot::BasicBot METHODS

These are the Bot::BasicBot overriden methods

said( $args )

This is the main method, everything said is analysed to provide a reply if appropriate

help()

Displays help when called hangman help

tick()

Called every now and then to display a reminder if the game is active and can_talk is on.

SEE ALSO

Bot::BasicBot

AUTHOR

Pierre Denis <pierre@itrelease.net>

http://www.itrelease.net/

COPYRIGHT

Copyright 2005 IT Release Ltd - All Rights Reserved.

This module is released under the same license as Perl itself.