当前位置: 首页 > 科技观察

通过编写交互式游戏来学习Bash

时间:2023-03-21 17:33:11 科技观察

编写一个简单的游戏是练习一门新语言并将其与您知道的其他语言进行比较的好方法。学习一门新的编程语言很有趣。每当我尝试学习一门新语言时,我都会专注于定义变量、编写语句和评估表达式。一旦我对这些概念有了大致的了解,我通常可以自己弄清楚剩下的部分。大多数编程语言都有一些相似之处,所以一旦你知道了一个,学习下一个就是弄清楚它的独特细节并识别差异。为了帮助我练习一门新的编程语言,我喜欢编写测试程序。我经常编写的一个示例程序是一个简单的“猜数字”程序,计算机从1到100之间选择一个数字,然后让我猜这个数字。程序一直循环,直到我猜对为止。“猜数字”程序练习了编程语言中的几个概念:如何给变量赋值,如何写语句,如何进行条件判断和循环。这是学习新编程语言的绝佳实践实验。用Bash猜数字Bash是大多数Linux系统上的标准shell。除了提供丰富的命令行用户界面外,Bash还支持脚本形式的完整编程语言。如果您是Bash的新手,我推荐这些介绍:什么是Bash?.Bash编程入门系统管理员Bash脚本入门如何在Bash中编写函数阅读有关Bash的更多信息您可以通过编写Bash版本的“猜数字”游戏来探索它。这是我的实现:#!/bin/bashnumber=$(($RANDOM%100+1))echo"Guessanumberbetween1and100"guess=0while["0$guess"-ne$number];请阅读guess["0$guess"-lt$number]&&echo"Toolow"["0$guess"-gt$number]&&echo"Toohigh"doneecho"没错!"exit0#!/bin/bash的第一行告诉Linux使用Bashshell来运行这个脚本。每个脚本都以#!字符对(LCTT译注:注释),表示是一个shell脚本。紧跟#!是要运行的外壳。在此示例中,/bin/bash指的是Bashshell。要为变量赋值,请在变量名称后列出=符号。例如,语句guess=0将零值分配给guess变量。您还可以使用read语句提示用户输入值。如果你写一个readguess语句,Bash会等待用户输入一些文本,然后将这个值存储在guess变量中。要引用变量的值,请在变量名称前使用$。因此,在将值存储到guess变量后,您可以使用$guess检索它。您可以使用任何您喜欢的变量名,但Bash为自己保留了一些特殊的变量名。一个特殊的变量是RANDOM,它每次被引用时都会产生一个很大的随机数。如果要在存储值的同时执行操作,则需要将语句括在特殊的括号中。这将告诉Bash先执行语句,然后=将结果值存储在变量中。要计算一个数学表达式,请用$(())将您的语句括起来。双括号表示算术表达式。在我的例子中,number=$(($RANDOM%100+1))计算表达式$RANDOM%100+1,然后将值存储在number变量中。+(加法)、-(减法)、*(乘法)、/(除法)和%(取模)等标准算术运算符均适用。这意味着语句number=$(($RANDOM%100+1))生成一个介于1和100之间的随机数。模运算符(%)返回两个数相除后的余数。在这种情况下,Bash将一个随机数除以100,余数在0到99范围内,通过将这个值加1,你得到一个1到100之间的随机数。Bash支持条件表达式和循环等流控制。在“猜数字”游戏中,只要guess中的值不等于number,Bash就会一直循环下去。如果猜测小于随机数,Bash将打印“toolow”,如果猜测大于随机数,Bash将打印“toohigh”。它是如何工作的现在您已经编写了Bash脚本,您可以运行它来玩“猜数字”游戏。一直猜,直到找到正确的数字:猜一个介于1和10050之间的数字太高30太高20太高10太低15太高13太低14没错!每次运行此脚本时,Bash都会随机选择一个不同的数字。这个“猜数字”游戏是学习新编程语言的一个很好的入门程序,因为它以直接的方式练习了几个常见的编程概念。通过用不同的编程语言实现这个简单的游戏,您可以演示一些核心概念并比较每种语言的细节。你有最喜欢的编程语言吗?您将如何使用它来编写“猜数字”游戏?按照本系列文章查看您可能感兴趣的其他编程语言的示例。