用 Emojicode 写一个可爱的程序
创始人
2024-03-02 15:02:36
0

这种有趣的开源语言是学习编码真正的完美选择。

在这篇文章中,我将介绍一个最好的编码语言,学习如何制作任何东西!它叫做 Emojicode,是由 Theo Belaire 在 2014 年创建的,它是一种开源的编程语言,使用 emoji 字符来表示其语法。当用 Emojicode 开发时,表情符被用来创建变量、函数和控制结构。因为它是一种静态类型的语言,变量类型必须在使用前声明,但它也支持类和继承等面向对象的概念。这种语言可以在每个操作系统上运行,它是一种超级有趣的编码方式,特别是当你是一个非英语母语的人时。这很有帮助,因为象形表示可以把我们大家聚集在一起,让我们以类似数学的方式说同样的语言。

先决条件

在本教程中,我使用的是基于 Debian 的操作系统。我的工具可能与你的操作系统的要求不同。以下是我所使用的工具:

  • Geany,一个 Linux 下的开源 IDE。
  • IBus,它允许你挑选表情符并把它们放在你的编辑器中。我使用的界面被称为 emoji picker
  • 基于 Debian 的 Linux。
  • 一个 C++ 编译器。我使用的是 g++ 编译器。
  • Emojicode

我使用的是 Linux 操作系统,但你可以 阅读文档 了解在其他操作系统上使用它时可能需要采取的任何特殊步骤。

在 Linux 上安装 Emojicode

有几种方法可以在你的电脑上安装 Emojicode,但它们有一个很酷的 神奇的安装页面,可以告诉你具体该怎么做。下面是我的做法:

$ 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.

现在,你已经安装好了,是时候开始编写代码了!

它是怎么运作的?

首先,所有 Emojicode 文件的扩展名都以文件名 .? 结尾,但因为你不能在一般的文件名中这样做,所以它被翻译成 filename.emojic。这里是最重要的语法元素:

  • ? 放在一行的开头,表示要执行哪些代码块
  • ? 开始一个代码块
  • ? 来结束一个代码块
  • 想打印什么吗?就用 ? ? ? ❗

还有很多其他的,所以这里有一些实际的例子。

打印一首俳句

首先,试着打印一首漂亮的俳句来玩玩吧! 在这个例子中,我将添加一行注释。看看你是否能识别它。

??
? 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

我试图让它工作,我的编译器出现了一些问题,我发现了这个问题。你也可能会在这里和那里遇到一些小问题。如果你遇到了,请创建一个 议题,这样它就有可能被修复。

没有技巧,只有很棒的代码

虽然我可以介绍更多内容,但我可以向你保证,这段令人惊叹的代码背后的文档非常丰富。尽管我写这篇文章只是为了赶上愚人节的乐趣,但我不得不承认这是有史以来最好的语言之一,因为它教会了你很多非常真实的编程概念。我恳切地建议把它作为一种有趣的方式来教你的一些朋友、孩子,或者是对编码感兴趣的同学。希望你度过了一个充满乐趣的愚人节!


via: https://opensource.com/article/23/4/emojicode

作者:Jessica Cherry 选题:lkxed 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

相关内容

智谱GLM-4.7-Fla...
IT之家 1 月 20 日消息,智谱 GLM-4.7-Flash ...
2026-01-20 09:46:59
“擦边”哪有AI编程香?马...
文 | 字母AI 最近马斯克很头疼:Grok在X上脱人衣服这件事...
2026-01-19 13:18:17
Linux祖师爷真香现场!...
新智元报道 编辑:定慧 【新智元导读】Linux之父「叛变」了!...
2026-01-12 20:18:39
伯克利团队破解AI评测难题...
这项由加州大学伯克利分校的Ishir Garg、Neel Kolh...
2026-01-10 22:19:05
夯爆!开源编程新王诞生!我...
大家好,我是小林。 这几天很多同学看到国产大模型GLM-4.7发布...
2025-12-30 16:17:04
原创 ...
文 | 周天财经 周天财经 原创出品 五千年前,苏美尔人在泥板上刻...
2025-12-25 11:15:55

热门资讯

如何在 Github 上创建一... 学习如何复刻一个仓库,进行更改,并要求维护人员审查并合并它。你知道如何使用 git 了,你有一个 G...
《Apex 英雄》正式可在 S... 《Apex 英雄》现已通过 Steam Deck 验证,这使其成为支持 Linux 的顶级多人游戏之...
Helix:高级 Linux ... 说到 基于终端的文本编辑器,通常 Vim、Emacs 和 Nano 受到了关注。这并不意味着没有其他...
JStock:Linux 上不... 如果你在股票市场做投资,那么你可能非常清楚投资组合管理计划有多重要。管理投资组合的目标是依据你能承受...
Textual:为 Pytho... 快速入门使用 TextualPython 在 Linux 上有像 TkInter 这样的优秀 GUI...
硬核观察 #1245 Open... #1 OpenAI 悄然删除禁止将 ChatGPT 用于 “军事和战争” 的禁令在 1 月 10 日...
使用时间序列数据,用开源工具助... InfluxData 是一个开源的时间序列数据库平台。下面介绍了它是如何被用于边缘应用案例的。收集到...
使用 KRAWL 扫描 Kub... 用 KRAWL 脚本来识别 Kubernetes Pod 和容器中的错误。当你使用 Kubernet...
硬核观察 #1249 LG 洗... #1 LG 洗衣机每天上传近 4GB 的数据?一个名为 Johnie 的 LG 洗衣机用户发现,他的...
2024 年 Linux 和开... 让我们尝试预测未来吧!新的一年快乐,朋友们 ✨2024 年的钟声已经敲过,我们有必要去预见一下将塑造...