通过编写“猜数字”游戏来学习 Ada 编程语言

开发
这个 "猜数字 "游戏是学习新编程语言的一个很好的入门程序,因为它以一种相当直接的方式锻炼了几个常见的编程概念

当你想 ​​学习一种新的编程语言​​ 时,把注意力放在编程语言的共同点上是很好的:

  • 变量
  • 表达式
  • 语句

这些概念是大多数编程语言的基础。一旦你理解了它们,你就可以开始琢磨其他的东西了。因为编程语言通常有相似之处,一旦你知道一种语言,你就可以通过了解其差异来学习另一种语言的基础知识。

学习新语言的一个好方法是用一个标准程序进行练习。这使你能够专注于语言,而不是程序的逻辑。在这个系列文章中,我使用了一个“猜数字”的程序,在这个程序中,计算机在 1 到 100 之间挑选一个数字,并要求你猜出来。程序循环进行,直到你猜对数字为止。

这个程序锻炼了编程语言中的几个概念:

  • 变量
  • 输入
  • 输出
  • 条件判断
  • 循环

这是一个学习新的编程语言的很好的实践实验。

安装 Ada

​Ada 编程语言​​ 是一种独特的、高度结构化的语言,有专门一群开发者使用它。Ada 的工具链是 GNU Ada 开发环境,多被称为 GNAT。

你可以使用你的发行版的包管理器在 Linux 上安装 GNAT。在 Fedora、CentOS 或类似系统上:

$ sudo dnf install gcc-gnat

在 Debian、Linux Mint 及衍生版上:

$ sudo apt install gnat

在 macOS 和 Windows 上,你可以从 ​​Adacore 网站​​ 下载一个安装程序(从下拉菜单中选择你的平台)。

在 Ada 中猜数字

创建一个名为 ​​game.adb​​ 的文件。

这个程序使用的两个内置 Ada 库:​​Text_IO​​​ 和 ​​Numerics.Discrete_Random​​:

with Ada.Text_IO;use Ada.Text_IO;with Ada.Numerics.Discrete_Random;

过程头

过程procedure

注意,​​discrete_random​​ 是专门针对特定范围的。在这里,允许数字范围:

procedure Game is   type randRange is range 1..100;   package Rand_Int is new ada.numerics.discrete_random(randRange);   use Rand_Int;   gen : Generator;   num : randRange;   incorrect: Boolean := True;   guess: randRange;

过程逻辑

该逻辑从 ​​reset(gen)​​​ 开始。这将初始化随机数发生器,确保每次运行程序时,用 ​​random(gen)​​ 初始化的数字将是不同的。

下一步是运行循环:

  • 输出猜测的指令
  • 读取该行
  • 将其转换为​​randRange​​。
  • 将其与数字进行核对

如果数字匹配,​​incorrect​​​ 被设置为 ​​False​​,导致循环的下一次迭代退出。

最后,程序在退出前会打印出对猜测正确性的确认:

begin   reset(gen);   num := random(gen);   while incorrect loop       Put_Line ("Guess a number between 1 and 100");       declare          guess_str : String := Get_Line (Current_Input);       begin          guess := randRange'Value (guess_str);       end;       if guess < num then           Put_line("Too low");       elsif guess > num then           Put_line("Too high");       else           incorrect := False;       end if;   end loop;   Put_line("That's right");end Game;

编译程序

编译 Ada 程序的最简单方法是使用 ​​gnatmake​​:

$ gnatmake game.adbaarch64-linux-gnu-gcc-10 -c game.adbaarch64-linux-gnu-gnatbind-10 -x game.aliaarch64-linux-gnu-gnatlink-10 game.ali

这将生成一个名为 ​​game​​ 的二进制文件。

运行程序

程序的每次运行都会有一些不同。这是一个例子:

$ ./game Guess a number between 1 and 10050Too lowGuess a number between 1 and 10075Too lowGuess a number between 1 and 10082Too lowGuess a number between 1 and 10090Too highGuess a number between 1 and 10087Too lowGuess a number between 1 and 10088That's right

学习 Ada

这个“猜数字”游戏是学习新的编程语言的一个很好的入门程序,因为它以一种相当直接的方式锻炼了几个常见的编程概念。通过在不同的编程语言中实现这个简单的游戏,你可以展示这些语言的一些核心概念,并比较它们的细节。

你有喜欢的编程语言吗?你会如何用它来写“猜数字”的游戏?请关注本系列文章,看看你可能感兴趣的其他编程语言的例子吧!

责任编辑:庞桂玉 来源: Linux中国
相关推荐

2022-06-03 16:59:13

编程语言Awk

2021-01-12 06:42:50

Lua脚本语言编程语言

2023-02-13 08:26:28

猜数字Basic

2023-02-23 14:30:27

游戏Tcl

2021-10-04 18:49:46

Fortran 77语言猜数字

2021-04-13 06:35:13

Elixir语言编程语言软件开发

2021-01-03 16:30:34

Rust编程语言

2021-01-19 09:35:36

Python视频游戏编程语言

2021-01-01 19:30:21

Python编程语言

2021-01-05 12:38:53

C++编程语言软件开发

2020-12-28 06:29:31

Bash互动游戏Linux

2021-01-14 08:55:20

C语言编程

2018-03-29 08:30:48

Linux命令BASH

2019-09-23 09:11:02

Python文本编辑器操作系统

2014-02-24 14:34:49

2019-10-08 15:27:18

扫雷BashLinux

2015-09-29 09:38:50

Java程序猜大小

2020-12-09 11:42:18

WiFi IoT鸿蒙开发

2019-09-11 14:16:34

编程语言技术人生第一份工作

2021-04-22 09:57:37

Random方法游戏
点赞
收藏

51CTO技术栈公众号