数字炸弹(shell)

 

#!/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






 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值