in reply to Wizardv1.1
#!/usr/bin/perl -w # Version 1.2 ;) use strict; my ( $room, $choice, $shop ); my $wizard = 50; my $wizardl = 1; my $gold = 10; my $damage = 3; # various monsters my @monsters = ( { 'name' => 'goblins', 'health' => 12}, { 'name' => 'orcs', 'health' => 14}, { 'name' => 'trolls', 'health' => 13}, { 'name' => 'wolves', 'health' => 10}, { 'name' => 'rats', 'health' => 6}, { 'name' => 'bats', 'health' => 5} ); print "Welcome to Wizard! Type your wizard's name..."; my $name = <STDIN>; chomp($name); print "Welcome $name to Wizard.\n You are now in Merlin's castle.\n You are +surrounded by other mages and disscussion flows back "; print "and forth in the room. Suddenly Merlin stands up in front of all an +d says:<< I need a powerful man to go out and slay all the monsters t +hat have been plauging my land.\n"; print "Which one of you can raise to the challenge?>> Slowly all those in th +e room rise, including yourself.\n\n"; print "<<Good, good...>> merlin utters. Then be off.\n\n\n"; print "(note: the higher the number you choose, the more often you will enco +uter enemies!)\n\n\n"; sub goodbye { print "Thanks for playing, $name.\n\n"; exit; } sub toad { my ($monster, $monsterhealth) = @_; if ( $room != 6 ) { my $toad = int( rand 4 ) + 1; if ( $toad <= $wizardl ) { print "The $monster have been zapped into toads!\n"; $gold = $gold + 3; print "good job you got 3 gold!\n"; freedale(); } else { print "your spell has failed! -2 health\n"; $wizard = $wizard - 2; battle($monster, $monsterhealth); } } else { my $toad = int( rand 7 ) + 1; if ( $toad <= $wizardl ) { print "The demons have been zapped into toads!\n"; $gold = $gold + 6; print "great job you got 6 gold!\n"; freedale(); } elsif ( $toad > $wizardl ) { print "your spell has failed! -2 health\n"; $wizard = $wizard - 2; battle($monster, $monsterhealth); } } } sub battle { my ($monster, $monsterhealth) = @_; print "What do you want to do?..press 1 to use spells or 2 for com +bat.\n"; $choice = <STDIN>; chomp $choice; if ( $choice eq '1' ) { toad($monster, $monsterhealth); } elsif ( $choice =~ "q" ) { goodbye(); } elsif ( $choice eq '2' ) { do { $monsterhealth = $monsterhealth - $damage; $wizard = $wizard - 2; print "wizard health: $wizard\t"; print "$monster health: $monsterhealth\n"; } until ( $monsterhealth <= 0 || $wizard <= 0 ); if ( $wizard > 0 ) { print "good job you got 3 gold!\n"; $gold = $gold + 3; freedale(); } elsif ( $wizard <= 0 ) { goodbye(); } } else { print "You must choose 1, 2, or q!\n"; battle($monster, $monsterhealth); } } sub forest { print "The forest is dark and smells of old mold and rotton fish. + The foul waters have turned this once peaceful place in to a\n"; +print "dark evil place.\n"; my $gobbo = int( rand 6 ) + 1; if ( $gobbo >= 5 ) { my $randommonster=$monsters[int( rand 6 )]; print "$randommonster->{name} attack\n"; battle( $randommonster->{name}, $randommonster->{health} ); } else { print "There are no monsters here now.\n"; freedale(); } } sub mountain { print "Its pretty cold up here, but from this altitude you can see + the whole town below you.\n"; print "Although it is clear that you are not the first one here!\n +"; my $gobbo = int( rand 6 ) + 1; if ( $gobbo >= 4 ) { my $randommonster=$monsters[int( rand 6 )]; print "$randommonster->{name} attack\n"; battle( $randommonster->{name}, $randommonster->{health} ); } else { print "There are no monsters here now.\n"; freedale(); } } sub dungeon { print "There is a heavy feeling in the air, it's very dark and mus +ty down here.\n"; print "You can see clear signs that goblins have been here, and ma +ybe worse things!\n"; my $gobbo = int( rand 6 ) + 1; if ( $gobbo >= 3 ) { my $randommonster=$monsters[int( rand 6 )]; print "$randommonster->{name} attack\n"; battle( $randommonster->{name}, $randommonster->{health} ); } else { print "There are no monsters here now.\n"; freedale(); } } sub splane { print "This is a mysterious place full of horribly powerful monste +rs...\n"; print "You see tracks unlike any other you have encountered before +.\n"; my $gobbo = int( rand 6 ) + 1; if ( $gobbo >= 2 ) { print "Demons attack!\n"; battle( 'demons', 18 ); } else { print "There are no demons here now.\n"; freedale(); } } sub shop { print "Hello welcome to freedale market may I help you?\n"; print "type 1 for 30 more health.................................. +....... +.....10 gold\n"; print "type 2 for daggers (increases damage per round by one)............... +.......................... +....15 gold\n"; print "type 3 for magic wands(increases magic level by one)................. +.................... +30 gold\n"; print "type 4 to leave the shop\n"; $shop = <STDIN>; if ( $shop == 1 ) { if ( $gold < 10 ) { print "you don't have enough gold\n"; freedale(); } else { print "Thank you\n"; $gold = $gold - 10; $wizard = $wizard + 30; freedale(); } } elsif ( $shop == 2 ) { if ( $gold < 15 ) { print "you don't have enough gold\n"; freedale(); } else { print "thank you\n"; $gold = $gold - 15; $damage = $damage + 1; freedale(); } } elsif ( $shop == 3 ) { if ( $gold < 30 ) { print "you don't have enough gold\n"; freedale(); } else { print "thank you\n"; $gold = $gold - 30; $wizardl = $wizardl + 1; freedale(); } } elsif ( $shop == 4 ) { print "Thank you for coming!\n"; freedale(); } else { print "Please enter a number between 1 and 4!\n"; freedale(); } } sub cheat { $wizardl = $wizardl + 2; $wizard = 100; $gold = 60; freedale(); } sub error { freedale(); } sub wizstat { print "health:\t$wizard\n"; print "magic level:\t$wizardl\n"; print "gold:\t$gold\n"; freedale(); } sub freedale { print "you are in freedale.\n"; print "where do you want to go?\n"; print "type 1 for the forest, 2 for the mountain, or 3 for the dungeon, 4 +for the shop, 5 to view stats, 6 for the Shadow Plane, or q to quit. +\n "; print "press q at anytime to quit.\n"; $room = <STDIN>; chomp $room; if ( $room eq '1' ) { forest(); } elsif ( $room eq '2' ) { mountain(); } elsif ( $room eq '3' ) { dungeon(); } elsif ( $room eq '4' ) { shop(); } elsif ( $room eq '5' ) { wizstat(); } elsif ( $room eq '6' ) { if ( $wizardl < 3 ) { print "You're level isn't high enough! You must have a magic lvl of 3 to com +e here.\n"; freedale(); } elsif ( $wizardl => 3 ) { splane(); } } elsif ( $room eq '7' ) { cheat(); } elsif ( $room =~ "q" ) { goodbye(); } else { print "Please enter a number between 1 and 6 or q to quit!\n" +; error(); } } freedale()
|
---|
Replies are listed 'Best First'. | |
---|---|
Re^2: Wizard v1.2
by CountZero (Bishop) on May 06, 2005 at 19:07 UTC | |
by wazoox (Prior) on May 06, 2005 at 21:00 UTC | |
Re^2: Wizard v1.2
by Roy Johnson (Monsignor) on May 09, 2005 at 18:08 UTC | |
by wazoox (Prior) on May 09, 2005 at 19:27 UTC | |
by Roy Johnson (Monsignor) on May 09, 2005 at 20:51 UTC | |
by wazoox (Prior) on May 10, 2005 at 07:09 UTC | |
Re^2: Wizard v1.2
by deibyz (Hermit) on May 10, 2005 at 08:30 UTC | |
by wazoox (Prior) on May 10, 2005 at 15:50 UTC | |
by deibyz (Hermit) on May 10, 2005 at 17:20 UTC | |
by wazoox (Prior) on May 10, 2005 at 20:40 UTC | |
by Roy Johnson (Monsignor) on May 10, 2005 at 21:21 UTC | |
| |
by void_Anthony() (Acolyte) on May 11, 2005 at 12:26 UTC | |
by wazoox (Prior) on May 11, 2005 at 13:12 UTC |