#!/bin/bash
echo "
# +----------------------------------------------------------------------
# | 数字炸弹
# | y:开始 n:结束
# +----------------------------------------------------------------------
";
echo
ceckOpenGame(){
# $1:$open_game
if [ $1 == 'n' ];then
echo -e '\n游戏结束\n'
exit
fi
if [ $1 != 'y' ];then
echo -e '\n检测到您未输入合规命令,视为拒绝开始游戏\n'
exit
fi
}
read -p "是否开始游戏: " open_game
ceckOpenGame $open_game
bomb=$[RANDOM%100+1]
range_min=0
range_max=100
checkBomb(){
# $1:$bomb $2:$check_bomb $3:$range_min $4:$range_max
# return 1 :输入的数字不符合,犯规
# return 2 :合规,没中弹
# return 3 :中弹
# return 4 :下局不用猜了,直接中弹
# echo -e "炸弹:$1;猜数:$2;范围:$3 ~:$4 \n"
if [ $2 -gt $3 -a $2 -lt $4 ];then
if [ $1 -eq $2 ];then
echo -e '\n很不幸,你猜中了炸弹,游戏结束\n'
return 3;
else
if [ $2 -gt $1 ];then
range_max=$2
else
range_min=$2
fi
if [ $[$range_max-$range_min] -eq 2 ];then
return 4
fi
return 2
fi
else
echo -e '\n输入的数字不符合,犯规\n'
return 1
fi
}
echo -e '\n炸弹已经埋好,游戏开始:\n'
while true;
do
read -p "请输入 $range_min ~ $range_max 之间的数: " check_bomb
checkBomb $bomb $check_bomb $range_min $range_max
check_bomb_result=$?
while [ $check_bomb_result -eq 1 ];
do
read -p "请输入 $range_min ~ $range_max 之间的数: " check_bomb
checkBomb $bomb $check_bomb $range_min $range_max
check_bomb_result=$?
done
if [ $check_bomb_result -eq 2 ];then
echo ''
fi
if [ $check_bomb_result -eq 4 ];then
echo -e '\n恭喜下一位选手,被迫中弹了\n';
check_bomb_result=3
fi
if [ $check_bomb_result -eq 3 ];then
read -p "是否开始新游戏?(y:开始;n:结束): " open_game
ceckOpenGame $open_game
echo -e '\n炸弹已经埋好,游戏开始:\n'
bomb=$[RANDOM%100+1]
range_min=0
range_max=100
fi
done