
Games::PMM - the base distribution of the Paper Maché Monsters Game

Paper Maché Monsters is a monster-battling game where wind-up monsters battle each other in an arena. These monsters run through programmable command lists until a victor emerges.

use Games::PMM::Arena; my $arena = Games::PMM::Arena->new();
use Games::PMM::Monster;
my @monsters;
for (0 .. 5)
{
my $commands = load_file( "commands.$_" );
push @monsters, Games::PMM::Monster->new(
commands => $commands
);
}
my ($x, $y) = (0, 0);
for my $monster (@monsters)
{
$arena->add_monster( $monster, x => $x, y => $y );
$x += 2;
y += 2;
}
for my $monster (@monsters)
{
my $facing = (qw( north south east west ))[ int( rand( 4 ) ) ];
$monster->facing( $facing )
}
use Games::PMM::Actions; my $actions = Games::PMM::Actions->new();
Loop through the monsters, activating their command lists:
for my $monster (@monsters)
{
while (my ($action, @arguments) = $monster->next_command())
{
my $command = $actions->can( 'action_' . $action );
next unless $command;
$actions->$command( $arena, $monster, @arguments );
}
}
That's up to you. "Last monster standing" is a good winning condition. Of course, some combinations of monsters may never reach each other. Another good option is running the game for a fixed number of rounds, declaring that the least-damaged monster wins.
Ties are acceptable.

chromatic, chromatic@wgz.org

No known bugs.

Documentation on the available commands that monsters understand.
Documentation on the field where monsters fight.
Documentation on the monsters themselves.
Documentation on the implementation of the actions.

Copyright (c) 2003, chromatic. All rights reserved. This module is distributed under the same terms as Perl itself, in the hope that it is useful but certainly under no guarantee.