#!/bin/bash
#定义一个函数用于产生随机数
function zsz(){
let random=$(($RANDOM%6))+1;
return $random
}
#获得一个数组 向数组中添加棋盘
for((i=0;i<=75;i++))
do
array4[$i]=□
#埋雷
if [[ $i -eq 9 || $i -eq 23 || $i -eq 36 || $i -eq 44 || $i -eq 55 || $i -eq 73 ]];
then
array4[$i]=⊙
# 再跌一次
elif [[ $i -eq 5 || $i -eq 25 || $i -eq 66 ]]
then
array4[$i]=?
# 转轮
elif [[ $i -eq 16 || $i -eq 46 || $i -eq 62 ]]
then
# 可能前进或者后退
array4[$i]=?
elif [[ $i -eq 75 ]]
then
array4[$i]=?
fi
done
# 第一个参数为当前图标 第二个参数为 总步数 第三个参数为 掷出点数 第四个参数为当前所在位置的符号
man=(? -1 0,?);
weman=(? -1 0,?);
#用个标记 来判断谁先获胜
flag=0;
#str1 用于拼前10 个 位置
str1="\t?\t"
echo -e "\t\t\t\t\t\t \033[32m 余大大的飞行棋 \033[0m"
#首先让自己先掷塞子
wj=0;
while [[ flag -eq 0 ]]
do
#处理自己掷塞子
if [[ ${man[1]} -ge 0 ]]
then
if [ ${man[1]} != ${weman[1]} ]
then
man[3]=${array4[${man[1]}]}
fi
# 将人物符号放入当前位置
array4[${man[1]}]=${man[0]}
fi
#处理人机掷塞子
if [[ ${weman[1]} -ge 0 ]]
then
if [ ${man[1]} != ${weman[1]} ]
then
weman[3]=${array4[${weman[1]}]}
fi
# 将人物符号放入当前位置
array4[${weman[1]}]=${weman[0]}
fi
echo -e "\t\t\t\t\t 自己? 人机?"
for((i=0;i<${#array4[@]};i++))
do
#将第当前下标放入数组中
#当i小于10
if [ $i -le 10 ]
then
str1=${str1}"${array4[$i]}\t"
if [ $i = 10 ]
then
echo -e "$str1"
str1=""
fi
fi
if [[ $i -ge 11 && $i -le 12 ]];
then
echo -e "\t\t\t\t\t\t\t\t\t\t\t\t${array4[$i]}"
fi
#13 -23
if [[ $i -ge 13 && $i -le 23 ]];
then
str1=${str1}"${array4[$i]}\t"
if [ $i = 23 ]
then
echo -e "$str1\t" | rev
str1="\t\t"
fi
fi
# 24 25
if [[ $i -ge 24 && $i -le 25 ]];
then
echo -e "\t\t${array4[$i]}"
fi
# 26 36
if [[ $i -ge 26 && $i -le 36 ]];
then
str1=${str1}"${array4[$i]}\t"
if [ $i = 36 ]
then
echo -e "$str1"
str1=""
fi
fi
# 37 38
if [[ $i -ge 37 && $i -le 38 ]];
then
echo -e "\t\t\t\t\t\t\t\t\t\t\t\t${array4[$i]}"
fi
# 39 49
if [[ $i -ge 39 && $i -le 49 ]];
then
str1=${str1}"${array4[$i]}\t"
if [ $i = 49 ]
then
echo -e "$str1\t" | rev
str1="\t\t"
fi
fi
# 50 51
if [[ $i -ge 50 && $i -le 51 ]];
then
echo -e "\t\t${array4[$i]}"
fi
# 52 62
if [[ $i -ge 52 && $i -le 62 ]];
then
str1=${str1}"${array4[$i]}\t"
if [ $i = 62 ]
then
echo -e "$str1"
str1=""
fi
fi
# 63 64
if [[ $i -ge 63 && $i -le 64 ]];
then
echo -e "\t\t\t\t\t\t\t\t\t\t\t\t${array4[$i]}"
fi
# 65 75
if [[ $i -ge 65 && $i -le 75 ]];
then
str1=${str1}"${array4[$i]}\t"
if [ $i = 75 ]
then
echo -e "$str1\t" | rev
str1="\t?\t"
fi
fi
done
echo -e "\t\t\t\t⊙ 炸弹 ? 再跌一次 ? 幸运转轮"
#游戏结束
if [ ${man[1]} -eq 75 ]
then
echo -e "\033[5;34m 您获取了胜利 \033[0m"
exit
fi
if [ ${weman[1]} -eq 75 ]
then
echo -e "\033[5;34m 人机获取了胜利 \033[0m"
exit
fi
#将当前下标换成原来的图案
if [[ ${man[1]} -ge 0 ]]
then
array4[${man[1]}]=${man[3]}
#踩到炸弹了
if [[ ${man[1]} -eq 9 || ${man[1]} -eq 23 || ${man[1]} -eq 36 || ${man[1]} -eq 44 || ${man[1]} -eq 55 || ${man[1]} -eq 73 ]];
then
if [[ $wj -eq 9 ]]
then
wj=0;
elif [[ $wj -eq 1 ]]
then
echo -e "\033[31m ?踩到地雷 暂停一次 \033[0m"
#将执行的机会让出
wj=5;
fi
# 再跌一次
elif [[ ${man[1]} -eq 5 || ${man[1]} -eq 25 || ${man[1]} -eq 66 ]]
then
echo -e "\033[32m ?恭喜 再跌一次 \033[0m"
wj=0;
# 转轮
elif [[ ${man[1]} -eq 16 || ${man[1]} -eq 46 || ${man[1]} -eq 62 ]]
then
man[2]=5
let man[1]=man[2]+man[1]
echo -e "\033[32m ?获取空中补给前进5格 \033[0m"
sleep 3
#第二次再执行人机
wj=2;
fi
fi
#人机
if [[ ${weman[1]} -ge 0 ]]
then
array4[${weman[1]}]=${weman[3]}
#踩到炸弹了
if [[ ${weman[1]} -eq 9 || ${weman[1]} -eq 23 || ${weman[1]} -eq 36 || ${weman[1]} -eq 44 || ${weman[1]} -eq 55 || ${weman[1]} -eq 73 ]];
then
if [[ $wj -eq 8 ]]
then
wj=1;
elif [[ $wj -eq 0 ]]
then
echo -e "\033[31m ?踩到地雷 暂停一次 \033[0m"
#将执行的机会让出
wj=4;
fi
# 再跌一次
elif [[ ${weman[1]} -eq 5 || ${weman[1]} -eq 25 || ${weman[1]} -eq 66 ]]
then
echo -e "\033[32m ?恭喜 再跌一次 \033[0m"
wj=1;
# 转轮
elif [[ ${weman[1]} -eq 16 || ${weman[1]} -eq 46 || ${weman[1]} -eq 62 ]]
then
weman[2]=5
let weman[1]=weman[2]+weman[1]
echo -e "\033[32m ?获取空中补给前进5格 \033[0m"
#第二次再执行玩家
sleep 3
wj=3;
fi
fi
#自己
if [[ $wj -eq 0 || $wj -eq 4 || $wj -eq 6 ]]
then
read -p"请掷骰子(按y):"
zsz
man[2]=$?
let man[1]=man[2]+man[1]
if [ ${man[1]} -ge 75 ]
then
man[1]=75;
fi
if [ ${man[1]} -eq ${weman[1]} ]
then
man[3]=${weman[3]}
fi
echo "您掷出了 ${man[2]}"
if [[ $wj -eq 6 ]]
then
wj=8;
fi
if [[ $wj -eq 4 ]]
then
echo -e "\033[32m ?人机踩种雷 再跌一次 \033[0m"
wj=6;
fi
sleep 3
fi
if [[ $wj -eq 1 || $wj -eq 5 || $wj -eq 7 ]]
then
zsz
weman[2]=$?
let weman[1]=weman[2]+weman[1];
if [ ${weman[1]} -ge 75 ]
then
weman[1]=75;
fi
if [ ${man[1]} -eq ${weman[1]} ]
then
weman[3]=${man[3]}
fi
echo "人机掷出了 ${weman[2]}"
if [[ $wj -eq 7 ]]
then
wj=9;
fi
if [[ $wj -eq 5 ]]
then
echo -e "\033[32m ?玩家踩种雷 再跌一次 \033[0m"
wj=7;
fi
sleep 3
fi
if [[ $wj -eq 0 ]]
then
wj=1;
elif [[ $wj -eq 1 ]]
then
wj=0;
elif [[ $wj -eq 2 ]]
then
wj=1;
elif [[ $wj -eq 3 ]]
then
wj=0;
fi
echo -e "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"
done
#定义一个函数用于产生随机数
function zsz(){
let random=$(($RANDOM%6))+1;
return $random
}
#获得一个数组 向数组中添加棋盘
for((i=0;i<=75;i++))
do
array4[$i]=□
#埋雷
if [[ $i -eq 9 || $i -eq 23 || $i -eq 36 || $i -eq 44 || $i -eq 55 || $i -eq 73 ]];
then
array4[$i]=⊙
# 再跌一次
elif [[ $i -eq 5 || $i -eq 25 || $i -eq 66 ]]
then
array4[$i]=?
# 转轮
elif [[ $i -eq 16 || $i -eq 46 || $i -eq 62 ]]
then
# 可能前进或者后退
array4[$i]=?
elif [[ $i -eq 75 ]]
then
array4[$i]=?
fi
done
# 第一个参数为当前图标 第二个参数为 总步数 第三个参数为 掷出点数 第四个参数为当前所在位置的符号
man=(? -1 0,?);
weman=(? -1 0,?);
#用个标记 来判断谁先获胜
flag=0;
#str1 用于拼前10 个 位置
str1="\t?\t"
echo -e "\t\t\t\t\t\t \033[32m 余大大的飞行棋 \033[0m"
#首先让自己先掷塞子
wj=0;
while [[ flag -eq 0 ]]
do
#处理自己掷塞子
if [[ ${man[1]} -ge 0 ]]
then
if [ ${man[1]} != ${weman[1]} ]
then
man[3]=${array4[${man[1]}]}
fi
# 将人物符号放入当前位置
array4[${man[1]}]=${man[0]}
fi
#处理人机掷塞子
if [[ ${weman[1]} -ge 0 ]]
then
if [ ${man[1]} != ${weman[1]} ]
then
weman[3]=${array4[${weman[1]}]}
fi
# 将人物符号放入当前位置
array4[${weman[1]}]=${weman[0]}
fi
echo -e "\t\t\t\t\t 自己? 人机?"
for((i=0;i<${#array4[@]};i++))
do
#将第当前下标放入数组中
#当i小于10
if [ $i -le 10 ]
then
str1=${str1}"${array4[$i]}\t"
if [ $i = 10 ]
then
echo -e "$str1"
str1=""
fi
fi
if [[ $i -ge 11 && $i -le 12 ]];
then
echo -e "\t\t\t\t\t\t\t\t\t\t\t\t${array4[$i]}"
fi
#13 -23
if [[ $i -ge 13 && $i -le 23 ]];
then
str1=${str1}"${array4[$i]}\t"
if [ $i = 23 ]
then
echo -e "$str1\t" | rev
str1="\t\t"
fi
fi
# 24 25
if [[ $i -ge 24 && $i -le 25 ]];
then
echo -e "\t\t${array4[$i]}"
fi
# 26 36
if [[ $i -ge 26 && $i -le 36 ]];
then
str1=${str1}"${array4[$i]}\t"
if [ $i = 36 ]
then
echo -e "$str1"
str1=""
fi
fi
# 37 38
if [[ $i -ge 37 && $i -le 38 ]];
then
echo -e "\t\t\t\t\t\t\t\t\t\t\t\t${array4[$i]}"
fi
# 39 49
if [[ $i -ge 39 && $i -le 49 ]];
then
str1=${str1}"${array4[$i]}\t"
if [ $i = 49 ]
then
echo -e "$str1\t" | rev
str1="\t\t"
fi
fi
# 50 51
if [[ $i -ge 50 && $i -le 51 ]];
then
echo -e "\t\t${array4[$i]}"
fi
# 52 62
if [[ $i -ge 52 && $i -le 62 ]];
then
str1=${str1}"${array4[$i]}\t"
if [ $i = 62 ]
then
echo -e "$str1"
str1=""
fi
fi
# 63 64
if [[ $i -ge 63 && $i -le 64 ]];
then
echo -e "\t\t\t\t\t\t\t\t\t\t\t\t${array4[$i]}"
fi
# 65 75
if [[ $i -ge 65 && $i -le 75 ]];
then
str1=${str1}"${array4[$i]}\t"
if [ $i = 75 ]
then
echo -e "$str1\t" | rev
str1="\t?\t"
fi
fi
done
echo -e "\t\t\t\t⊙ 炸弹 ? 再跌一次 ? 幸运转轮"
#游戏结束
if [ ${man[1]} -eq 75 ]
then
echo -e "\033[5;34m 您获取了胜利 \033[0m"
exit
fi
if [ ${weman[1]} -eq 75 ]
then
echo -e "\033[5;34m 人机获取了胜利 \033[0m"
exit
fi
#将当前下标换成原来的图案
if [[ ${man[1]} -ge 0 ]]
then
array4[${man[1]}]=${man[3]}
#踩到炸弹了
if [[ ${man[1]} -eq 9 || ${man[1]} -eq 23 || ${man[1]} -eq 36 || ${man[1]} -eq 44 || ${man[1]} -eq 55 || ${man[1]} -eq 73 ]];
then
if [[ $wj -eq 9 ]]
then
wj=0;
elif [[ $wj -eq 1 ]]
then
echo -e "\033[31m ?踩到地雷 暂停一次 \033[0m"
#将执行的机会让出
wj=5;
fi
# 再跌一次
elif [[ ${man[1]} -eq 5 || ${man[1]} -eq 25 || ${man[1]} -eq 66 ]]
then
echo -e "\033[32m ?恭喜 再跌一次 \033[0m"
wj=0;
# 转轮
elif [[ ${man[1]} -eq 16 || ${man[1]} -eq 46 || ${man[1]} -eq 62 ]]
then
man[2]=5
let man[1]=man[2]+man[1]
echo -e "\033[32m ?获取空中补给前进5格 \033[0m"
sleep 3
#第二次再执行人机
wj=2;
fi
fi
#人机
if [[ ${weman[1]} -ge 0 ]]
then
array4[${weman[1]}]=${weman[3]}
#踩到炸弹了
if [[ ${weman[1]} -eq 9 || ${weman[1]} -eq 23 || ${weman[1]} -eq 36 || ${weman[1]} -eq 44 || ${weman[1]} -eq 55 || ${weman[1]} -eq 73 ]];
then
if [[ $wj -eq 8 ]]
then
wj=1;
elif [[ $wj -eq 0 ]]
then
echo -e "\033[31m ?踩到地雷 暂停一次 \033[0m"
#将执行的机会让出
wj=4;
fi
# 再跌一次
elif [[ ${weman[1]} -eq 5 || ${weman[1]} -eq 25 || ${weman[1]} -eq 66 ]]
then
echo -e "\033[32m ?恭喜 再跌一次 \033[0m"
wj=1;
# 转轮
elif [[ ${weman[1]} -eq 16 || ${weman[1]} -eq 46 || ${weman[1]} -eq 62 ]]
then
weman[2]=5
let weman[1]=weman[2]+weman[1]
echo -e "\033[32m ?获取空中补给前进5格 \033[0m"
#第二次再执行玩家
sleep 3
wj=3;
fi
fi
#自己
if [[ $wj -eq 0 || $wj -eq 4 || $wj -eq 6 ]]
then
read -p"请掷骰子(按y):"
zsz
man[2]=$?
let man[1]=man[2]+man[1]
if [ ${man[1]} -ge 75 ]
then
man[1]=75;
fi
if [ ${man[1]} -eq ${weman[1]} ]
then
man[3]=${weman[3]}
fi
echo "您掷出了 ${man[2]}"
if [[ $wj -eq 6 ]]
then
wj=8;
fi
if [[ $wj -eq 4 ]]
then
echo -e "\033[32m ?人机踩种雷 再跌一次 \033[0m"
wj=6;
fi
sleep 3
fi
if [[ $wj -eq 1 || $wj -eq 5 || $wj -eq 7 ]]
then
zsz
weman[2]=$?
let weman[1]=weman[2]+weman[1];
if [ ${weman[1]} -ge 75 ]
then
weman[1]=75;
fi
if [ ${man[1]} -eq ${weman[1]} ]
then
weman[3]=${man[3]}
fi
echo "人机掷出了 ${weman[2]}"
if [[ $wj -eq 7 ]]
then
wj=9;
fi
if [[ $wj -eq 5 ]]
then
echo -e "\033[32m ?玩家踩种雷 再跌一次 \033[0m"
wj=7;
fi
sleep 3
fi
if [[ $wj -eq 0 ]]
then
wj=1;
elif [[ $wj -eq 1 ]]
then
wj=0;
elif [[ $wj -eq 2 ]]
then
wj=1;
elif [[ $wj -eq 3 ]]
then
wj=0;
fi
echo -e "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"
done