这个"猜数字"游戏是学习新编程语言的一个挺好的入门程序,由于它以一种相当直接的方法锻练了几个常见的编程概念。
(本文字数:2923,阅读时长大概:3分钟)
当你想学习一种新的编程语言时,把注意力放到编程语言的共同点上是挺好的:
这种概念是大多数编程语言的基础。一旦你理解了它们,你就可以开始寻思其他的东西了。由于编程语言一般有相像之处,一旦你晓得一种语言,你就可以通过了解其差别来学习另一种语言的基础知识。
学习新语言的一个好方式是用一个标准程序进行练习。这使你才能专注于语言,而不是程序的逻辑。在这个系列文章中linux运维招聘,我使用了一个“猜数字”的程序linux开发游戏,在这个程序中,计算机在1到100之间选购一个数字linux开发游戏,并要求你猜下来。程序循环进行,直至你猜对数字为止。
这个程序锻练了编程语言中的几个概念:
这是一个学习新的编程语言的挺好的实践实验。
安装Ada
Ada编程语言是一种奇特的、高度结构化的语言,有专门一群开发者使用它。Ada的工具链是GNUAda开发环境,多被称为GNAT。
你可以使用你的发行版的包管理器在Linux上安装GNAT。在Fedora、CentOS或类似系统上:
$ sudo dnf install gcc-gnat
在Debian、LinuxMint及衍生版上:
$ 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)开始。这将初始化随机数发生器linux计划任务,确保每次运行程序时,用random(gen)初始化的数字将是不同的。
下一步是运行循环:
假如数字匹配,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 high");
else
incorrect := False;
end if;
end loop;
Put_line("That's right");
end Game;
编译程序
编译Ada程序的最简单方式是使用gnatmake:
$ gnatmake game.adb
aarch64-linux-gnu-gcc-10 -c game.adb
aarch64-linux-gnu-gnatbind-10 -x game.ali
aarch64-linux-gnu-gnatlink-10 game.ali
这将生成一个名为game的二补码文件。
运行程序
程序的每次运行就会有一些不同。这是一个反例:
$ ./game
Guess a number between 1 and 100
50
Too low
Guess a number between 1 and 100
75
Too low
Guess a number between 1 and 100
82
Too low
Guess a number between 1 and 100
90
Too high
Guess a number between 1 and 100
87
Too low
Guess a number between 1 and 100
88
That's right
学习Ada
这个“猜数字”游戏是学习新的编程语言的一个挺好的入门程序,由于它以一种相当直接的方法锻练了几个常见的编程概念。通过在不同的编程语言中实现这个简单的游戏,你可以展示这种语言的一些核心概念,并比较它们的细节。