使用Perl的数字猜谜游戏

数字猜谜游戏就是在给定的机会内猜出计算机随机选择的数字。

要使用的功能:

  1. 兰德n: 此函数用于生成0到n之间的随机数。此函数始终返回浮点数。因此,它的结果被显式转换为整数值。
  2. Chomp(): 此函数用于从用户输入中删除换行符。

说明: 在程序中,while循环一直运行,直到用户猜测的次数等于生成的次数,或者尝试次数小于最大机会数。如果尝试次数大于游戏停止的几率,用户将输掉游戏。如果用户在给定的机会数内猜到正确的数字,那么他或她将获胜。用户每次猜测后,程序都会通知用户猜测的数字是否小于或大于实际生成的数字。 在这段代码中,最初, 兰德函数 选择一个随机数作为x。函数(rand k)查找0到k之间的随机数。由于该随机数是一个浮点数,所以 “int” 用于将其显式转换为整数。x存储整数。如果机会超过了用户的猜测,那么用户将有一定的机会猜测该数字。

以下是实施情况:

# Number Guessing Game implementation
# using Perl Programming
print "Number guessing game" ;
# rand function to generate the
# random number b/w 0 to 10
# which is converted to integer
# and store to the variable "x"
$x = int rand 10;
# variable to count the correct
# number of chances
$correct = 0;
# number of chances to be given
# to the user to guess number
# the number or it is the of
# inputs given by user into
# input box here number of
# chances are 4
$chances = 4;
$n = 0;
print "Guess a number (between 0 and 10): " ;
# while loop containing variable n
# which is used as counter value
# variable chance
while ( $n < $chances )
{
# Enter a number between 0 to 10
# Extract the number from input
# and remove newline character
chomp ( $userinput = <STDIN>);
# To check whether user provide
# any input or not
if ( $userinput != "blank" )
{
# Compare the user entered number
# with the number to be guessed
if ( $x == $userinput )
{
# if number entered by user
# is same as the generated
# number by rand function then
# break from loop using loop
# control statement "last"
$correct = 1;
last ;
}
# Check if the user entered
# number is smaller than
# the generated number
elsif ( $x > $userinput )
{
print "Your guess was too low," ;
print " guess a higher number than ${userinput}" ;
}
# The user entered number is
# greater than the generated
# number
else
{
print "Your guess was too high," ;
print " guess a lower number than ${userinput}" ;
}
# Number of chances given
# to user increases by one
$n ++;
}
else
{
$chances --;
}
}
# Check whether the user
# guessed the correct number
if ( $correct == 1)
{
print "You Guessed Correct!" ;
print " The number was $x" ;
}
else
{
print "It was actually ${x}." ;
}


输入:

5
6
8
9

输出:

Number guessing game
Guess a number (between 0 and 10): 
Your guess was too low, guess a higher number than 5
Your guess was too low, guess a higher number than 6
Your guess was too low, guess a higher number than 8
You Guessed Correct! The number was 9

注: 在上面的程序中,用户可以修改 兰德 函数来增加游戏中的数字范围,用户也可以通过增加机会变量的值来增加机会数。

© 版权声明
THE END
喜欢就支持一下吧,技术咨询可以联系QQ407933975
点赞12 分享