使用Perl的数字猜测游戏
猜数字游戏是指在给定的机会中猜出计算机随机选择的数字。
要使用的函数。
- rand n : 这个函数用来生成一个0到n之间的随机数,而且这个函数总是返回浮点数。所以它的结果要明确转换为整数值。
- Chomp() : 这个函数用来删除用户输入的换行符。
解释:
在程序中,while循环运行,直到用户猜出的数字等于生成的数字或尝试的次数少于最大的机会数。如果尝试的次数大于机会数,游戏就会停止,用户就会输掉游戏。如果用户在给定的机会数内猜中了正确的数字,那么他或她将获胜。在用户每次猜测后,程序会通知用户猜测的数字是否比实际生成的数字小或大。
在这段代码中,最初, rand函数 选择一个随机数作为x。该函数(rand k)找到一个在0和k之间的随机数。由于这个随机数是一个浮点数,所以用 “int “将其明确转换为整数。x存储整数。用户有特定的机会来猜测这个数字,如果机会超过用户的猜测,用户就会输。
下面是实现的过程。
# Number Guessing Game implementation
# using Perl Programming
print "Number guessing game\n";
# 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 chancescorrect = 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): \n";
# 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}\n";
}
# The user entered number is
# greater than the generated
# number
else
{
print "Your guess was too high,";
print " guess a lower number than {userinput}\n";
}
# 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
注: 在上述程序中,用户可以修改 rand 函数的值来增加这个游戏中的数字范围,同时用户也可以通过增加机会变量的值来增加机会的数量。