随机猜数

作者:Nelo Onyiah

在这个活动中,您将创建一个游戏。好吧,也许不是您见过的最有趣的游戏(嘿,这毕竟是初学者级别),但无论如何也是一个游戏。在这个游戏中,您的脚本将生成一个介于 1 到 50 之间的随机数,用户需要猜出该数字。

对于 Windows PowerShell 和 Perl,这将是一个标准的命令行脚本。该脚本将显示一条消息,要求用户输入一个介于 1 到 50 之间的数字。该脚本会将用户提供的数字与随机生成的数字进行比较。如果数字不匹配,脚本将显示一条消息,指示猜测是过高还是过低,并要求他们再次猜测。

当用户猜对时,脚本将显示随机数以及猜到正确数字所需的猜测次数。此时游戏结束,因此脚本将结束。

http://web.archive.org/web/20081210124629/http://www.microsoft.com/technet/scriptcenter/funzone/games/games08/bevent8.mspx

源代码:event008-j1n3l0.pl

use v6;

our $number  = (1..50).pick(1);
our $guesses = 0;

sub is_valid($guess) {
    unless $guess ~~ /^ \d+ $/ && 1 <= $guess <= 50 {
        warn "Invalid input ($guess).";
        return;
    }
    return $guess;
}

sub MAIN() {
    loop {
        my $guess = prompt "Enter a number between 1 and 50: ";

        next unless is_valid $guess;

        $guesses++;

        if $guess == $number {
            say "Got it in $guesses guess(es)!";
            last;
        }
        elsif $guess  > $number { say 'Too high' }
        elsif $guess  < $number { say 'Too low'  }
    }
}