Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2863048
  • 博文数量: 178
  • 博客积分: 2076
  • 博客等级: 大尉
  • 技术积分: 2800
  • 用 户 组: 普通用户
  • 注册时间: 2008-01-10 10:50
文章分类

全部博文(178)

文章存档

2010年(4)

2009年(13)

2008年(161)

我的朋友

分类: LINUX

2008-10-06 15:46:57

别人写的剪刀石头布
应该说设计思想:
1。显示函数。 传值或引用。
2。结果函数。传值或引用。
3。后期处理函数。
 
#!/usr/bin/perl

use strict;
use warnings;
#1-rock, 2-paper, 3-scissors
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);#进行比较,进而改变$you $me ,$draw
        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';
}
阅读(445) | 评论(0) | 转发(0) |
0

上一篇:DBI 连接错误

下一篇:PERL-RECORD

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