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

用Elixir编写迷你游戏

时间:2023-03-21 21:24:43 科技观察

通过编写“猜数字”游戏来学习Elixir编程语言,并将其与您已知的语言进行比较。为了更好地学习一门新的编程语言,最好的方法是关注主流语言的一些共同特征:变量表达式语句这些概念是大多数编程语言的基础。由于这些相似性,只要你精通一种编程语言,通过比较不同之处就可以熟悉另一种编程语言。学习一门新编程语言的另一个好方法是开始编写一个简单的标准程序。它使您可以专注于语言而不是程序本身的逻辑。在本系列文章中,我们使用“猜数字”程序来做到这一点,计算机会在1到100之间选择一个数字并要求您猜它。程序循环直到你猜对了数字。“猜数字”程序使用以下编程语言概念:变量输入输出条件循环这是学习新编程语言的绝佳实践。NumberGuessingElixirImplementationElixir是一种动态类型的函数式编程语言,旨在构建稳定且可维护的应用程序。它与Erlang运行在同一台虚拟机上,吸收了Erlang的诸多优点,语法更简单。您可以编写“猜数字”游戏的Elixir版本来体验这门语言。我是这样做的:defmoduleGuessdodefguess()dorandom=Enum.random(1..100)IO.puts"Guessanumberbetween1and100"Guess.guess_loop(random)enddefguess_loop(num)dodata=IO.read(:stdio,:line){guess,_rest}=Integer.parse(data)conddoguessIO.puts“太低了!”guess_loop(num)guess>num->IO.puts“太高了!”guess_loop(num)true->IO.puts“没错!”endendendGuess.guess()Elixir通过列出其名称后跟一个=符号来为变量赋值。例如,表达式random=0将值0分配给随机变量。代码从定义一个模块开始。在Elixir语言中,只有模块可以包含命名函数。下面这行代码定义了入口函数guess(),这个函数:调用Enum.random()函数获取一个随机整数打印游戏提示调用循环函数剩下的游戏逻辑在guess_loop()中实现功能。guess_loop()函数使用尾递归来实现循环。在Elixir中有多种实现循环的方法,尾递归是比较常见的一种。guess_loop()函数做的最后一件事是调用自身。guess_loop()函数的第一行读取用户输入。下一行调用parse()函数将输入转换为整数。cond表达式是Elixir版本的多分支表达式。与其他语言中的if/elif或if/elsif表达式不同,Elixir不区分第一个分支和最后一个没有分支。这个cond表达式有三个分支:猜测的结果可以大于、小于或等于随机数。前两个选项先输出不等式的方向,然后递归调用guess_loop(),循环回到函数开头。最后一个选项输出That'sright,功能完成。示例输出现在您已经编写了Elixir代码,您可以运行它来玩“猜数字”游戏。每次执行这个程序,Elixir都会选择一个不同的随机数,你可以一直猜,直到找到正确答案:$elixirguess.exs猜一个介于1和10050之间的数字太高30太高20太高10太低15太高13太低14没错!“游戏是学习新编程语言的一个很好的入门程序,因为它以非常直接的方式练习了几个常用的编程概念。通过用不同的语言实现这个简单的小游戏,您可以练习每种语言的核心概念并比较它们的细节.你有最喜欢的编程语言吗?你会如何使用它来编写“猜数字”游戏的程序?按照本系列文章查看你可能感兴趣的其他语言实现。