#!/usr/bin/perl # - automatically generated from by: # alpaca.pl v0.93 # http://catseye.webhop.net/projects/alpaca/ ###################################################### use Alpaca qw(true false guess adjacent_state adjacent_class load_playfield display_playfield process_playfield); sub SustainerClassRules { return 0 }; sub SpaceStateRules { return 'Space' }; sub WallStateRules { return 'Wall' }; sub FoodStateRules { return SustainerClassRules() || 'Food' }; sub Food2StateRules { return SustainerClassRules() || 'Food2' }; sub SlimeStateRules { return 'Space' if ((not ((SustainerClassMember($Playfield->[$x][$y-1]) and SustainerClassMember($Playfield->[$x+1][$y])) or (SustainerClassMember($Playfield->[$x][$y-1]) and SustainerClassMember($Playfield->[$x][$y+1])) or (SustainerClassMember($Playfield->[$x][$y-1]) and SustainerClassMember($Playfield->[$x-1][$y])) or (SustainerClassMember($Playfield->[$x+1][$y]) and SustainerClassMember($Playfield->[$x][$y+1])) or (SustainerClassMember($Playfield->[$x+1][$y]) and SustainerClassMember($Playfield->[$x-1][$y])) or (SustainerClassMember($Playfield->[$x][$y+1]) and SustainerClassMember($Playfield->[$x-1][$y]))))); return SustainerClassRules() || 'Slime' }; sub SustainerClassMember { return $_[0] eq 'Food' || $_[0] eq 'Food2' || $_[0] eq 'Slime' || 0 }; $Appearance = { 'Food' => 'F', 'Food2' => 'S', 'Slime' => '%', 'Space' => ' ', 'Wall' => '#', }; $InputCodec = { 'F' => 'Food', 'S' => 'Food2', '%' => 'Slime', ' ' => 'Space', '#' => 'Wall', }; $StateRule = { 'Food' => \&main::FoodStateRules, 'Food2' => \&main::Food2StateRules, 'Slime' => \&main::SlimeStateRules, 'Space' => \&main::SpaceStateRules, 'Wall' => \&main::WallStateRules, }; load_playfield($ARGV[0]); display_playfield(); while (!$done) { process_playfield(); display_playfield(); } exit(0); ### END ###