要求:
利用 shell 脚本程序实现猜数字的游戏。
1、编写函数,实现 1~100 的随机数生成,作为被猜测的数字;
2、根据用户输入给出相应提示:
(1)输入非数字,提示“输入非数字,重新输入”;
(2)输入数字,则根据输入的数值于被猜测的数进行比较,给出大 或小的提示;
(3)输入正确数字,输出用户猜测出正确数字所用的次数,然后进 入下一轮游戏。
代码实现:
#!/bin/bash
# 定义一个生成随机数的函数
function random()
{
min=$1
max=$2
num=$(date +%s%N)
let "retnum = $num % ($max - $min + 1) + $min"
echo $retnum
}
# 主游戏循环
while true; do
# 生成随机数
target=$(random 1 100)
echo "猜数字游戏开始,范围是 1 到 100"
attempts=0 # 初始化猜测次数
while true; do
read -p "请输入你的猜测: " input
# 检查输入是否为数字
if ! [[ "$input" =~ ^[0-9]+$ ]]; then
echo "输入非数字,重新输入"
continue
fi
# 将输入转换为整数
guess=$((input))
# 检查猜测结果
attempts=$((attempts + 1))
if [ "$guess" -lt "$target" ]; then
echo "太小了,再试一次"
elif [ "$guess" -gt "$target" ]; then
echo "太大了,再试一次"
else
echo "恭喜你,猜对了!你用了 $attempts 次猜对了数字 $target"
break
fi
done
# 询问是否继续游戏
read -p "你想继续玩一轮吗?(y/n): " continue
if [ "$continue" != "y" ] && [ "$continue" != "Y" ]; then
echo "游戏结束,谢谢参与!"
break
fi
done