09_石头剪刀布

发布时间 2023-10-07 22:20:09作者: 鸟叔书
1. 数组
root@bk:~# arr=(aa bb cc)
root@bk:~# echo ${arr[@]}
aa bb cc
root@bk:~# echo ${arr[0]}
aa
root@bk:~# echo ${arr[2]}
cc

# 遍历序号
root@bk:~# for i in ${!arr[@]};do echo $i;done
0
1
2

# 通过序号遍历元素
root@bk:~# for i in ${!arr[@]};do echo ${arr[$i]};done
aa
bb
cc

# 求数组长度
root@bk:~# echo ${#arr[@]}
3

# 数组增加,删除元素
root@bk:~# echo ${arr[@]}
aa bb cc dd
root@bk:~#
root@bk:~# arr+=(ee)
root@bk:~#
root@bk:~# echo ${arr[@]}
aa bb cc dd ee
root@bk:~#
root@bk:~# unset arr[4]
root@bk:~#
root@bk:~# echo ${arr[@]}
aa bb cc dd
2. 石头剪刀布
#!/bin/bash
game=(石头 剪刀 布)
num=$((RANDOM % 3))
computer=${game[$num]} #通过随机数获取计算机的出拳
#出拳的可能性保存在一个数组中,game[0],game[1],game[2]分别是 3 中不同的可能

echo "请根据下列提示选择您的出拳手势"
echo "1.石头"
echo "2.剪刀"
echo "3.布"
read -p "请选择 1-3:" person

case $person in

1)
    if [ $num -eq 0 ]; then
        echo "平局"
    elif [ $num -eq 1 ]; then
        echo "你赢"
    else
        echo "计算机赢"
    fi
    ;;

2)
    if [ $num -eq 0 ]; then
        echo "计算机赢"
    elif [ $num -eq 1 ]; then
        echo "平局"
    else
        echo "你赢"
    fi
    ;;

3)
    if [ $num -eq 0 ]; then
        echo "你赢"
    elif [ $num -eq 1 ]; then
        echo "计算机赢"
    else
        echo "平局"
    fi
    ;;
*)
    echo "必须输入 1-3 的数字"
    ;;
esac