2023年8月2日发(作者:)
shellifcasefor⼏个条件的混合使⽤这段时间学习shell 脚本开发,本来⼀开始只打算写个 if 多分⽀判断,后来⼀不⼩⼼⼀发不可收拾,就把条件判断都尝试写了下。⼀个⽐较简单的游戏,分7个模式,可以不开上帝视⾓玩下,看哪关的成功率最⾼。 1 #!/bin/bash 2 usage() { 3 cat < 5 EOF 6 } 7 8 9 main() { 10 11 echo "猜分数赢⼤奖 (0-100)" 12 echo "请选择难度:" 13 echo '#########################################' 14 echo "1,试下⽜⼑:50-100,7次机会" 15 echo "2,不过尔尔:0- 100,7次机会" 16 echo "3,俯视众⽣:50-100,4次机会" 17 echo "4,我是菜鸟:0- 100,4次机会" 18 echo "5,我是主宰:50-100,2次机会" 19 echo "6,上帝视⾓,0- 100,2次机会" 20 echo '#########################################' 21 echo "" 22 read -p "输⼊当前关卡难度:" difficulty 23 case $difficulty in 24 1 ) 25 init_num=50 26 max_try=7 27 echo "游戏难度级别:1,玩的开⼼" 28 ;; 29 2 ) 30 init_num=1 31 max_try=7 32 echo "游戏难度级别:2,祝你好运" 33 ;; 34 3 ) 35 init_num=50 36 max_try=4 37 echo "游戏难度级别:3,学霸你好" 38 ;; 39 4 ) 40 init_num=1 41 max_try=4 42 echo "游戏难度级别:4,⼤⽜你好" 43 ;; 44 5 ) 45 init_num=50 46 max_try=2 47 echo "游戏难度级别:5,珍爱⽣命" 48 ;; 49 6 ) 50 init_num=1 51 max_try=2 52 echo "游戏难度级别:6,上帝你好" 53 ;; 54 * ) 55 init_num=50 56 max_try=1 57 echo "恭喜你获得隐藏关卡:地狱模式" 58 ;; 59 esac 60 61 bingo_num=$[RANDOM%100] 62 lucky_num=$[$bingo_num + $init_num] 63 64 if [[ $lucky_num -gt 100 ]]; then 65 lucky_num=$bingo_num 66 fi 67 69 for (( i = 1; i <= $max_try; i++ )); do 70 case $i in 71 1) read -p "游戏开始,请输⼊你的分数:" GRADE 72 ;; 73 *) read -p "请再次输⼊你的分数:" GRADE 74 ;; 75 esac 76 77 result=$[$GRADE-$lucky_num] 78 79 if [[ $result -ge 50 && $result -le 100 ]]; then 80 echo "你的分数:$GRADE ! 远远⼤于幸运号码" 81 elif [[ $result -ge 10 && $result -le 49 ]]; then 82 echo "你的分数:$GRADE 分! 稍微⼤于幸运号码" 83 elif [[ $result -gt 0 && $result -le 10 && $result -ne 0 ]]; then 84 echo "你的分数:$GRADE 分! 就⽐幸运号码⼤⼀丢丢啦" 85 elif [[ $result -ge -10 && $result -lt 0 && $result -ne 0 ]]; then 86 echo "你的分数:$GRADE 分! 离幸运号码就差⼀⼩丢丢" 87 elif [[ $result -eq 0 ]]; then 88 echo "" 89 echo "BINGO 恭喜" 90 echo "幸运号码:$lucky_num,请带上⾝份证原件还有299元⼿续费来领奖 " 91 case $difficulty in 92 3 ) echo "学霸带我⼀起飞吧" ;; 93 4 ) echo "⼤⽜给个⼤腿吧" ;; 94 5 ) echo "少年传授你⼀本绝世秘籍吧" ;; 95 6 ) echo "上帝快来救救我吧,我被传销迫害" ;; 96 * ) echo "你⼀定是从外星空来的" 97 ;; 98 esac 99 exit 0100 elif [[ $result -gt -50 && $result -lt -10 ]]; then101 echo "你的分数:$GRADE 分! ⽐幸运号码⼩ "102 elif [[ $result -lt -50 ]]; then103 echo "你的分数:$GRADE 分! 远远⼩于幸运号码 "104 fi105 106 echo "还有 $[$max_try-$i] 次机会"107 echo ""108 109 if [[ $i -eq $max_try ]]; then110 echo "⾮常抱歉你的次数你全部⽤完,离⼤奖就差⼀点点。"111 echo "你可以选择:"112 echo '#########################################################################'113 echo "1.消费100购买全部次数"114 echo "2.临时⼯"115 echo "3.试试⼿⽓"116 echo "其他任意键盘结束游戏" 117 echo '#########################################################################'118 119 read -p "请选择:" choose120 echo ""121 case $choose in122 1) 123 read -p "请输⼊⾦额:" money124 if [[ $money -le 100 ]]; then125 read -p "确认购买 y/n?" confirm126 if [[ $confirm == [yY] ]]; then127 echo "购买成功,信春哥满⾎复活!"128 echo ""129 i=0130 else131 echo "没关系,说不定下轮⼤奖就是你的"132 fi133 else134 echo "⾦额不对哦,⽆法购买"135 fi136 ;;137 3)138 echo "天灵灵,地灵灵,请⽼天再给我⼀次机会把"139 echo ""140 read -p "按任意键试下你的上帝之⼿吧" lucky_try141 case $lucky_try in142 *) echo ""143 ;;144 esac145 guess_again=$[RANDOM+1 % 100]146 if [[ $GRADE_again -eq $lucky_num ]]; then147 echo "恭喜你很荣幸的获得上天的眷顾"148 echo "⼥神恩赐了你两次机会,请珍惜!"149 for (( j = 1; j < 2; j++ )); do150 case $j in151 0) read -p "请输⼊你的第⼀次眷顾:" GRADE_again152 ;;153 *) read -p "请再次输⼊你的分数:" GRADE_again154 ;;155 esac156 157 result_again=$[$GRADE_again-$lucky_num]158 159 if [[ $result_again -eq 0 ]]; then160 echo "⼤奖号码:$lucky_num 恭喜通过眷顾机会获得超级⼤奖,通知所有今晚吃鸡翅"161 exit 0162 elif [[ $result -ne 0 ]]; then163 echo "你此次的眷顾结果运⽓就差⼀点点"164 fi165 echo "还剩 $[2-$j] 次眷顾机会"166 echo ""167 done168 else169 echo "没被眷顾倒,运⽓就差⼀点点"170 fi171 ;;172 *)173 echo "没关系,说不定下轮⼤奖就是你的"174 esac175 fi176 done177 }178 179 main "$@"180 181 exit 0
发布者:admin,转转请注明出处:http://www.yc00.com/news/1690918280a463260.html
评论列表(0条)