一、实验
实验目的
通过shell脚本编写代码实现人机石头剪刀布对战
实验内容
方法一
#!/bin/bash
read -p "请输入你要输得东西" a //定义变量a
b=$[RANDOM%3] //定义变量b,生成一个随机数,取值范围为0,1,2。
if [ $a == 石头 ]||[ $a == 剪刀 ]||[ $a == 布 ] //规定输入的内容
then
if [ $a==石头 ] //如果输入的是石头,和随机数比,默认0为石头,1为剪刀,2为布。
then
if [ $a==石头 ]&&[ $b -eq 0 ]
then
echo "电脑出石头,平局"
elif [ $a==石头 ]&&[ $b -eq 1 ]
then
echo "电脑出剪刀,你赢了"
else
echo "电脑出布,你输了"
fi
elif [ $a==剪刀 ] //如果输入的是剪刀
then
if [ $a==剪刀 ]&&[ $b -eq 1 ]
then
echo "平局"
elif [ $a==剪刀 ]&&[ $b -eq 2 ]
then
echo "你赢了"
else
echo "你输了"
fi
else
if [ $a==布 ]&&[ $b -eq 2 ] //否则输入的是布
then
echo "平局"
elif [ $a==布 ]&&[ $b -eq 0 ]
then
echo "你赢了"
else
echo "你输了"
fi
fi
else
echo "请输入石头,剪刀,布" // 如果输入的不是石头剪刀布,则报错
fi
方法二
新建一个rule.txt文件
文件内容为
0:石头
1:剪刀
2:布
然后编写如下shell脚本
方法三
#!/bin/bash
read -p "0:代表剪刀;1:代表石头;2:代表布;请输入剪刀石头布(0-2)" num
echo ""
jnum=`expr $RANDOM % 3`
if [ "$num" = "$jnum" ]
then
echo "你们打平了"
else
case $num in
[0-2])
if [ `expr $num + 1` = "$jnum" ] || [ `expr $jnum + 2` = "$num" ]
then
echo "机器赢了"
elif [ `expr $jnum + 1` = "$num" ] || [ `expr $num + 2` = "$jnum" ]
then
echo "你赢了"
fi
;;
*)
echo "您输入的格式有问题!"
esac
fi
echo ""
echo "机器的值为:$jnum;您输出的值为:$num;"
echo ""
方法四
#!/bin/bash
read -p "0:代表剪刀;1:代表石头;2:代表布;请输入剪刀石头布(0-2)" num
echo ""
jnum=`expr $RANDOM % 3`
num1=`expr $num + 1`
if [ "$num" = "$jnum" ]
then
echo "你们打平了"
else
case $num in
[0-2])
if [ "$num1" = "$jnum" -a "$num" != 2 ] || [ "$num" = 2 -a "$jnum" = 0 ]
then
echo "机器赢了,你输了"
else
echo "你赢了,机器输了"
fi
;;
*)
echo "您输入的格式有问题!"
esac
fi
echo ""
echo "机器的值为:$jnum;您输出的值为:$num;"
echo ""
下面两种方法转载于https://blog.csdn.net/weixin_39608791/article/details/107392474