Chinaunix首页 | 论坛 | 博客
  • 博客访问: 5273539
  • 博文数量: 1144
  • 博客积分: 11974
  • 博客等级: 上将
  • 技术积分: 12312
  • 用 户 组: 普通用户
  • 注册时间: 2005-04-13 20:06
文章存档

2017年(2)

2016年(14)

2015年(10)

2014年(28)

2013年(23)

2012年(29)

2011年(53)

2010年(86)

2009年(83)

2008年(43)

2007年(153)

2006年(575)

2005年(45)

分类: LINUX

2008-10-02 22:41:17

#!/usr/bin/perl

use strict;
use warnings;

our ($You, $Me, $Draw) = (0,0,0);
my @options = ("rock", "paper", "scissors");
my($my_turn, $your_turn);

PrintIntro();

while(1) {  
        $my_turn = MyGo();
        $your_turn = YourGo()-1;
       
        print "Me: $options[$my_turn], You: $options[$your_turn] -- ";
   
        Results($my_turn, $your_turn);
        PrintScore($You, $Me, $Draw);

        last unless Continue();
}

sub PrintIntro {
        print "\nRock, paper, scissors\n";  
        print "---------------------\n\n";
        print "Rock beats scissors,\n";
        print "Scissors beats paper, \n";
        print "Paper beats rock.\n\n";
}

sub MyGo { return int(rand(3)); }

sub YourGo {
    my $Turn = 0;
        print "Enter 1-rock, 2-paper, 3-scissors\n";
        chomp($Turn = );

        while(($Turn < 1) || ($Turn > 3)) {
                print "Enter 1-rock, 2-paper, 3-scissors\n";
        chomp($Turn = );
    }
   
        return $Turn;
}

sub PrintScore {
        print "You scored $You, I scored $Me with $Draw draws.\n";
       
        if($You > $Me) {
                print "You are winning.\n";
        }

        if($You < $Me) {
                print "I am winning.\n";
        }
       
        print "\n\n";
}

sub Results {
        my($my, $your) = @_;
        my $Test = $my - $your;
       
        if($Test == 0) {
                $Draw++;  
                print " Draw.\n";
        } elsif ($Test == -1) {
                $You++;
                print " You won.\n";
        }  elsif ($Test == 2) {
                $You++;
                print " You won.\n";
        } else {
                $Me++;
            print " I won.\n";
        }
}

sub Continue {
        print "\nAnother game?(y/n): ";
        my $answer;
        while (1) {
                $answer = ;
                chomp $answer;
                last if (lc $answer eq 'y') || (lc $answer eq 'n');
        }

        return $answer eq 'y';
}
阅读(2888) | 评论(0) | 转发(0) |
0

上一篇:hash中传递参数

下一篇:unpack

给主人留下些什么吧!~~