shell脚本小游戏(经典shell脚本菜单实例)

630g.com 发布于 2024-07-26 阅读(20)

## Shell 脚本小游戏: 用代码玩转命令行 ### 简介谁说命令行只能用来敲代码? 利用简单的 Shell 脚本,我们也可以在终端里创造有趣的小游戏! 本文将带你探索如何使用 Shell 脚本编写小游戏, 并提供一些简单易懂的例子,助你开启命令行游戏之旅。### 一、 Shell 脚本基础回顾在开始编写游戏之前,我们需要先回顾一些 Shell 脚本的基本知识:

变量

: 用于存储数据,例如 `name="玩家"`

输入输出

: `read` 命令获取用户输入,`echo` 命令输出信息到终端.

条件语句

: `if...then...else...fi` 用于根据条件执行不同代码块.

循环语句

: `for` 和 `while` 用于重复执行代码块.

函数

: 将代码块封装成可重复调用的单元.### 二、 简单游戏实例: 猜数字 #### 2.1 游戏目标玩家需要猜出一个预设范围内的随机数字.#### 2.2 代码实现```shell #!/bin/bash# 生成 1-100 的随机数 secret=$((RANDOM % 100 + 1))# 设置初始猜测次数 guesses=7echo "欢迎来到猜数字游戏!" echo "我已经想好了一个 1 到 100 之间的数字,你只有 ${guesses} 次机会猜对它。"while [ ${guesses} -gt 0 ] doread -p "请输入你的猜测: " guess# 判断猜测是否正确if [ ${guess} -eq ${secret} ]; thenecho "恭喜你,你猜对了!"exit 0elif [ ${guess} -lt ${secret} ]; thenecho "太低了,再试一次!"elseecho "太高了,再试一次!"figuesses=$((guesses - 1))echo "你还剩下 ${guesses} 次机会。" doneecho "很遗憾,你没有猜对。答案是 ${secret}。" ```#### 2.3 代码解析1. `secret=$((RANDOM % 100 + 1))`: 生成 1 到 100 之间的随机数,并将其赋值给变量 `secret`. 2. `guesses=7`: 设置初始猜测次数为 7 次. 3. 使用 `while` 循环控制游戏进行,当 `guesses` 大于 0 时,允许玩家继续猜测. 4. `read -p "请输入你的猜测: " guess`: 获取玩家输入的猜测数字,并存储在变量 `guess` 中. 5. 使用 `if...elif...else` 条件语句判断玩家的猜测:

如果 `guess` 等于 `secret`,则玩家获胜,游戏结束.

如果 `guess` 小于 `secret`,则提示玩家“太低了”.

如果 `guess` 大于 `secret`,则提示玩家“太高了”. 6. 每次猜测后,`guesses` 减 1,并提示玩家剩余的猜测次数. 7. 如果玩家在 `guesses` 用完之前没有猜对,则游戏结束,并公布答案.### 三、 进阶游戏: 石头剪刀布#### 3.1 游戏目标玩家与电脑进行石头剪刀布的对决,看谁能赢.#### 3.2 代码实现```shell #!/bin/bash# 定义手势数组 gestures=(石头 剪刀 布)# 获取电脑随机手势 computer=$((RANDOM % 3))# 获取玩家手势 echo "请选择你的手势:" select gesture in "${gestures[@]}"; docase "$gesture" in石头)player=0break;;剪刀)player=1break;;布)player=2break;;

)echo "无效的选择,请重新输入.";;esac done# 显示双方手势 echo "你出: ${gestures[$player]}" echo "电脑出: ${gestures[$computer]}"# 判断胜负 case $(( (player - computer + 3) % 3 )) in0)echo "平局!";;1)echo "你赢了!";;2)echo "你输了!";; esac ```#### 3.3 代码解析1. `gestures=(石头 剪刀 布)`: 定义一个包含三种手势的数组. 2. `computer=$((RANDOM % 3))`: 生成 0 到 2 之间的随机数,表示电脑随机选择的手势. 3. 使用 `select` 语句让玩家选择手势,并使用 `case` 语句将玩家选择的字符串转换成对应的数字 (0, 1, 2). 4. `echo "你出: ${gestures[$player]}"`, `echo "电脑出: ${gestures[$computer]}"`: 显示双方选择的手势. 5. 使用 `(( (player - computer + 3) % 3 ))` 计算胜负关系,并使用 `case` 语句根据结果输出不同的信息.### 四、 总结通过上面两个简单的例子,我们可以看到,使用 Shell 脚本编写小游戏并不复杂. 发挥你的想象力,结合 Shell 脚本的各种语法特性,你也可以创造出更多有趣的游戏!### 五、 学习资源

[Bash Shell Scripting Tutorial](https://linuxconfig.org/bash-scripting-tutorial-for-beginners)

[Shell Scripting Tutorial](https://www.tutorialspoint.com/unix/shell_scripting.htm)

[Learn Shell Scripting](https://www.freecodecamp.org/news/shell-scripting-crash-course-learn-shell-scripting-in-20-minutes/)希望这篇文章能激发你学习 Shell 脚本的兴趣,并在命令行中创造属于自己的游戏世界!

标签:  shell脚本小游戏