通过编写游戏学习 Julia

用多种语言编写相同的应用程序是学习新编程方式的好方法。
52 位读者喜欢这篇文章。
woman on laptop sitting at the window

CC BY 3.0 US Mapbox Uncharted ERG

大多数编程语言都有一些共同点,例如

  • 变量
  • 表达式
  • 语句

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

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

学习新语言的一个好工具是通过练习一个标准程序。这使您可以专注于语言本身,而不是程序的逻辑。在本系列文章中,我正在使用一个“猜数字”程序来做到这一点,其中计算机选择一个介于 1 到 100 之间的数字,并要求您猜测。程序循环直到您猜对数字为止。

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

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

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

在 Julia 中猜数字

根据 Julia 的网站,该语言 “是动态类型的,感觉像一种脚本语言,并且对交互式使用有良好的支持。” 它 “从一开始就为高性能而设计。 Julia 程序通过 LLVM 编译为适用于多个平台的有效本机代码。”

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

这是我的实现: 

random = rand(1:100)

println("Guess a number between 1 and 100")

while true
    data = readline()
    if data == ""
        println("goodbye")
        break
    end
    guess = parse(Int64, data)
    if guess < random
        println("Too low")
    elseif guess > random
        println("Too high")
    else
        println("That's right!")
        break
end

要为变量赋值,请列出变量的名称,后跟 = 符号。例如,语句 random = 0 将零值分配给 random 变量。

脚本的第一行读取函数 rand() 的结果,并将其分配给名为 random 的变量。该函数接受一个参数:一个范围。在这种情况下,范围是 1:100,这使得游戏具有足够的挑战性。

您还可以使用 readline() 函数提示用户输入值。 如果您编写 data = readline(),Julia 将等待用户输入一些文本,然后将该值存储在 guess 变量中。

下一步是将 data 转换为整数类型。在这种情况下,使用 Int64,一种 64 位整数类型。parse 函数的结果存储在变量 guess 中。

Julia 支持条件表达式和像循环这样的流程控制。在“猜数字”游戏中,只要猜测值不等于 random,Julia 就会继续循环。

如果猜测值小于随机数,Julia 将打印 太低,如果猜测值大于随机数,Julia 将打印 太高

示例输出

现在您已经编写了 Julia 程序,运行它来玩“猜数字”游戏。每次您运行该程序时,Julia 都会选择一个不同的随机数,因此您需要不断猜测直到找到正确的数字

$ julia guess.jl
Guess a number between 1 and 100
50
Too high
30
Too high
20
Too high
10
Too low
15
Too high
13
Too low
14
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,他非常关心软件可靠性、构建可重现性以及其他此类事情。

评论已关闭。

Creative Commons License本作品根据知识共享署名-相同方式共享 4.0 国际许可协议获得许可。
© . All rights reserved.