通过编写游戏学习 Basic

本教程让您通过编写“猜数字”游戏版本来探索 Basic。
1 位读者喜欢这篇文章。
Person using a laptop

用多种语言编写相同的应用程序是学习新的编程方法的好方法。大多数编程语言都有一些共同之处,例如

  • 变量
  • 表达式
  • 语句

这些概念是大多数编程语言的基础。一旦你理解了它们,你就可以开始弄清楚其余的内容。

编程语言通常有一些相似之处。一旦你掌握了一种编程语言,你就可以通过识别其差异来学习另一种语言的基础知识。

使用标准程序进行练习是学习新语言的好方法。它使您能够专注于语言,而不是程序的逻辑。我正在本系列文章中使用“猜数字”程序来做到这一点,其中计算机选择一个介于 1 到 100 之间的数字,并要求您猜测它。程序循环直到您正确猜出数字。

这个程序练习了编程语言中的几个概念

  • 变量
  • 输入
  • 输出
  • 条件评估
  • 循环

这是一个学习新编程语言的绝佳实践实验。本文重点介绍 Basic。

用 (Bywater) Basic 猜数字

Basic 编程语言没有真正的标准。维基百科说:“BASIC(Beginners' All-purpose Symbolic Instruction Code,初学者通用符号指令代码)是一个通用、高级编程语言系列,旨在易于使用。” BWBasic 实现根据 GPL 许可可用。

您可以通过编写“猜数字”游戏版本来探索 Basic。

在 Linux 上安装 Basic

在 Debian 或 Ubuntu 中,您可以使用以下命令安装 Basic

$ apt install -y bwbasic

下载 Fedora、CentOS、Mageia 和任何其他 Linux 发行版的最新版本 tarball。解压它,使其可执行,然后从终端运行它

$ tar --extract --file bwbasic*z

$ chmod +x bywater

$ ./bywater 

在 Windows 上,下载 .exe 版本

Basic 代码

这是我的实现

10 value$ = cint(rnd * 100) + 1
20 input "enter guess"; guess$
30 guess$ = val(guess$)
40 if guess$ < value$ then print "Too low"
50 if guess$ > value$ then print "Too high"
60 if guess$ = value$ then 80
70 goto 20
80 print "That's right"

Basic 程序可以编号或不编号。通常,最好编写未编号的程序,但使用编号行编写程序可以更轻松地引用单个行。

按照惯例,程序员将行写成 10 的倍数。这种方法允许在现有行之间插入新行以进行调试。以下是我上述方法的解释

  • 第 10 行:使用内置的 rnd 函数计算 1 到 100 之间的随机值,该函数生成介于 0 和 1 之间的数字,不包括 1。
  • 第 20 行:询问猜测并将值放入 guess$ 标量 变量中。第 30 行将值转换为数值。
  • 第 40 行和第 50 行:根据比较给出猜测者反馈。
  • 第 70 行:转到循环的开头。
  • 第 60 行:通过将控制权转移到第 80 行来中断循环。第 80 行是最后一行,因此程序在那之后退出。

示例输出

以下是将程序放入 program.bas 后的程序示例

$ bwbasic program.bas 
Bywater BASIC Interpreter/Shell, version 2.20 patch level 2
Copyright (c) 1993, Ted A. Campbell
Copyright (c) 1995-1997, Jon B. Volkoff

enter guess? 50
Too low
enter guess? 75
Too low
enter guess? 88
Too high
enter guess? 80
Too low
enter guess? 84
Too low
enter guess? 86
Too high
enter guess? 85
That's right

开始使用

这个“猜数字”游戏是学习新编程语言的绝佳入门程序,因为它以一种非常直接的方式练习了几个常见的编程概念。通过用不同的编程语言实现这个简单的游戏,您可以演示语言的一些核心概念并比较它们的细节。

您有最喜欢的编程语言吗?您将如何用它编写“猜数字”游戏?关注本系列文章,了解您可能感兴趣的其他编程语言!

标签
Moshe sitting down, head slightly to the side. His t-shirt has Guardians of the Galaxy silhoutes against a background of sound visualization bars.
自 1998 年以来,Moshe 一直参与 Linux 社区,帮助举办 Linux“安装派对”。自 1999 年以来,他一直在编写 Python 程序,并为核心 Python 解释器做出了贡献。Moshe 在这些术语出现之前就一直是 DevOps/SRE,他非常关心软件可靠性、构建可重现性以及其他此类事情。

3 条评论

很棒的文章!我想补充一点,对于任何想在 FreeDOS 上尝试的人来说,Bywater BASIC 软件包都包含在 FreeDOS 1.3 Bonus 安装 CD 中。

我认为他们转换错了:30 guess$ = val(guess$),有效代码是

10 value= cint(rnd * 100) + 1
20 input "enter guess"; guess$
30 guess = val(guess$)
40 if guess < value then print "Too low"
50 if guess > value then print "Too high"
60 if guess = value then 80
70 goto 20
80 print "That's right"

嗨 KHORFOX,运行编写的代码,使用 bwbasic,绝对可以按预期工作。我想知道您是否可能遇到了 BASIC 实现上的差异,或者是一些 shell 转义问题。

您正在运行什么 BASIC?

回复 作者:KHORFOX

Creative Commons License本作品根据 Creative Commons Attribution-Share Alike 4.0 International License 获得许可。
© . All rights reserved.