TranslateProject/published/202304/20230401.2 ⭐️ Write a cute program with Emojicode.md
2023-05-01 10:31:53 +08:00

197 lines
7.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

[#]: subject: "Write a cute program with Emojicode"
[#]: via: "https://opensource.com/article/23/4/emojicode"
[#]: author: "Jessica Cherry https://opensource.com/users/cherrybomb"
[#]: collector: "lkxed"
[#]: translator: "geekpi"
[#]: reviewer: "wxy"
[#]: publisher: "wxy"
[#]: url: "https://linux.cn/article-15699-1.html"
用 Emojicode 写一个可爱的程序
======
![][0]
> 这种有趣的开源语言是学习编码真正的完美选择。
在这篇文章中,我将介绍一个最好的编码语言,学习如何制作任何东西!它叫做 Emojicode是由 Theo Belaire 在 2014 年创建的,它是一种开源的编程语言,使用 emoji 字符来表示其语法。当用 Emojicode 开发时,表情符被用来创建变量、函数和控制结构。因为它是一种静态类型的语言,变量类型必须在使用前声明,但它也支持类和继承等面向对象的概念。这种语言可以在每个操作系统上运行,它是一种超级有趣的编码方式,特别是当你是一个非英语母语的人时。这很有帮助,因为象形表示可以把我们大家聚集在一起,让我们以类似数学的方式说同样的语言。
### 先决条件
在本教程中,我使用的是基于 Debian 的操作系统。我的工具可能与你的操作系统的要求不同。以下是我所使用的工具:
- [Geany][1],一个 Linux 下的开源 IDE。
- IBus它允许你挑选表情符并把它们放在你的编辑器中。我使用的界面被称为 **emoji picker**
- 基于 Debian 的 Linux。
- 一个 C++ 编译器。我使用的是 `g++` 编译器。
- [Emojicode][2]
我使用的是 Linux 操作系统,但你可以 [阅读文档][3] 了解在其他操作系统上使用它时可能需要采取的任何特殊步骤。
### 在 Linux 上安装 Emojicode
有几种方法可以在你的电脑上安装 Emojicode但它们有一个很酷的 [神奇的安装页面][4],可以告诉你具体该怎么做。下面是我的做法:
```
$ wget https://github.com/emojicode/emojicode/releases/download/v1.0-beta.2/Emojicode-1.0-beta.2-Linux-x86_64.tar.gz -O emojicode.tar.gz \
&& tar -xzf emojicode.tar.gz && rm emojicode.tar.gz \
&& cd Emojicode-1.0-beta.2-Linux-x86_64 && ./install.sh \
&& cd .. && rm -r Emojicode-1.0-beta.2-Linux-x86_64
```
Emojicode 的安装过程提供了有用的反馈。
![The emojicode installation procedure provides useful feedback along the way.][5]
现在,你已经安装好了,是时候开始编写代码了!
### 它是怎么运作的?
首先,所有 Emojicode 文件的扩展名都以文件名 `.🍇` 结尾,但因为你不能在一般的文件名中这样做,所以它被翻译成 `filename.emojic`。这里是最重要的语法元素:
-`🏁` 放在一行的开头,表示要执行哪些代码块
-`🍇` 开始一个代码块
-`🍉` 来结束一个代码块
- 想打印什么吗?就用 `😀 🔤 <string> 🔤 ❗`
还有很多其他的,所以这里有一些实际的例子。
### 打印一首俳句
首先,试着打印一首漂亮的俳句来玩玩吧! 在这个例子中,我将添加一行注释。看看你是否能识别它。
```
🏁🍇
💭 This is a single line comment for fun
😀 🔤Emojicode is great,🔤 ❗
😀 🔤Fun and expressive code,🔤 ❗
😀 🔤no sadness, just joy.🔤 ❗
🍉
```
现在我们需要保存我们的代码,并通过我们的编译器运行它,使之成为一个漂亮的可执行文件:
```
$ emojicodec haiku.emojic
$ ls
haiku haiku.emojic haiku.o
```
正如你所看到的,代码已经被编译并生成了两个文件,其中一个是可执行的。运行 `haiku` 文件:
```
$ ./haiku
Emojicode is great,
Fun and expressive code,
no sadness, just joy.
```
### 数学和变量操作
接下来,你要同时做几件事:一点点数学和变量的改变。首先,将一个变量赋值为 0
```
0 ➡️ 🖍🆕x
```
你刚刚使用蜡笔(`🖍`)表情符、新建(`🆕`)表情符和变量名称创建了一个新变量,同时还将该变量赋值为 0。
接下来,用磁铁(`🧲`)表情符打印一行包括该变量的内容:
```
😀 🔤The value is 🧲x🧲 🔤 ❗
```
接下来,使用加号(``)和箭头(`⬅️`)表情符改变变量:
```
x ⬅️➕ 1
```
然后打印另一行的值。如此这般,然后打印出最终的数值。如下:
```
🏁 🍇
💭Updating a variable using math
0 ➡️ 🖍🆕x
😀 🔤The value is 🧲x🧲 🔤 ❗
x ⬅️➕ 1
😀 🔤The value is 🧲x🧲 🔤 ❗
x ⬅️➕ 15
😀 🔤The value is 🧲x🧲 🔤 ❗
x ⬅️➖ 9
😀 🔤The value is 🧲x🧲 🔤 ❗
x ⬅️➗ 2
😀 🔤The final value is 🧲x🧲 🔤 ❗
🍉
```
接下来,用 `emojicodec` 编译代码,然后用你的可执行代码来看看结果:
```
$ emojicodec math.emojic
$ ./math
The value is 0
The value is 1
The value is 16
The value is 7
The final value is 3
```
如你所见,作为变量打印出来的所有内容都已使用新数学进行了更新。你可以用许多数学表情符来进一步操作。下面是一些更多的运算符:
```
🚮 is your modulo
◀ Less than
▶ Greater than
◀🙌 less than or equal to
▶🙌 greater than or equal to
```
### Emojicode 的怪癖
当我在文档中来回查看时,我发现了一些有趣的怪癖。其中之一是,当从用户那里抓取输入时,由于一些已知的编译器问题,耳朵的肤色很重要。
获取用户输入的动作是这样的:
```
🆕🔡▶️👂🏼❗️
```
获取和分配用户输入的操作是这样的:
```
🆕🔡▶️👂🏼❗️ ➡️ inputText
```
我试图让它工作,我的编译器出现了一些问题,我发现了这个问题。你也可能会在这里和那里遇到一些小问题。如果你遇到了,请创建一个 [议题][6],这样它就有可能被修复。
### 没有技巧,只有很棒的代码
虽然我可以介绍更多内容,但我可以向你保证,这段令人惊叹的代码背后的文档非常丰富。尽管我写这篇文章只是为了赶上愚人节的乐趣,但我不得不承认这是有史以来最好的语言之一,因为它教会了你很多非常真实的编程概念。我恳切地建议把它作为一种有趣的方式来教你的一些朋友、孩子,或者是对编码感兴趣的同学。希望你度过了一个充满乐趣的愚人节!
--------------------------------------------------------------------------------
via: https://opensource.com/article/23/4/emojicode
作者:[Jessica Cherry][a]
选题:[lkxed][b]
译者:[geekpi](https://github.com/geekpi)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://opensource.com/users/cherrybomb
[b]: https://github.com/lkxed/
[1]: https://github.com/geany/geany
[2]: https://github.com/emojicode/emojicode
[3]: https://www.emojicode.org/docs/
[4]: https://www.emojicode.org/docs/guides/
[5]: https://opensource.com/sites/default/files/2023-03/emoji.webp
[6]: https://github.com/emojicode/emojicode/issues
[0]: https://img.linux.net.cn/data/attachment/album/202304/07/141230yv2s53itmiw45ots.jpg