cp=$(( $RANDOM % 3 )) #获取0-2的随机数
read my
case $my in
0)
if [ $cp = 0 ]then
echo "您出石头,电脑出石头"
echo "结果:平局"
elif [ $cp = 1 ]then
echo "您出石头,电脑出剪刀"
echo "结果:恭喜您获胜!"
else
echo "您出石头,电脑出布"
echo "结果:很遗憾您输了"
fi
1)
if [ $cp = 0 ]then
echo "您出剪刀,电脑出石头"
echo "结果:很遗憾您输了"
elif [ $cp = 1 ]then
echo "您出剪刀,电脑出剪刀"
echo "结果:平局"
else
echo "您出剪刀,电脑出布"
echo "结果:恭喜您获胜"
fi
2)
if [ $cp = 0 ]then
echo "您出布,电脑出石头"
echo "结果:恭喜您获胜"
elif [ $cp = 1 ]then
echo "您出布,电脑出剪刀"
echo "结果:很遗憾您输了"
else
echo "您出布,电脑出布"
echo "结果:平局"
fi
*)
echo "您的输入有误,请重新开始"
exit 1
esac
你是指这个脚本的意思吗?
那我把意思解释如下咯:
#!/bin/bash #调用bash来执行程序for i in $( seq 1 54) #初始化牌
do
ok[$i]=1
done #for循环用于把54个牌都初始化为1
max=0 #初始化赢家
for i in $(seq 1 4) #游戏开始
do
echo "Player $i" #玩家i 的回合
a=$((RANDOM%53+1)) #抽牌
while [[ ${ok[$a]} -eq 0 ]]
do
a=$((RANDOM%53+1))
done #随机生成一张牌,1-54间
ok[$a]=0
if [ $a -gt $max ] then #if语句表示大于max这张牌的,就赋值给max,下表给num,下标表示第几张牌
max=$a
num=$i
fi
HuaSe=$((a%4)) #生成花色
case $HuaSe in #case语句得余数来表示花色
0)HS='C' #草花
1)HS='D' #方块
2)HS='H' #红心
3)HS='S' #黑心
esac
DaXiao=$((a/4+1)) #生成牌值
case $DaXiao in #这部分是来生成对应的牌
2|3|4|5|6|7|8|9|10) echo $HS$DaXiao
11)echo $HS 'J'
12)echo $HS 'Q'
13)echo $HS 'K'
1 )echo $HS 'A'
14)echo 'small JOKE ' #小王
15)echo 'big JOKE ' #大王
esac
read ll
done
echo "Player $numwin !" #游戏结果,这里写错了,怎么出现个numwin变量,中间有空格吧
很多地方写的有问题,少了一个部分,如果硬要说这个脚本是要干嘛的话,后面大部分是输出那张牌,有用的就是if语句,就是找到一个大于max的牌,但是后面怎么出现了个read,唉,你想干嘛私聊我吧,我直接教你做
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)