Skip to content

Commit 770d881

Browse files
committed
zz
1 parent c726f24 commit 770d881

File tree

3 files changed

+50
-0
lines changed

3 files changed

+50
-0
lines changed

docs/public/st0091-01.jpg

58.1 KB
Loading

docs/public/st0091-02.jpg

29.9 KB
Loading

docs/smalltalk/st0091.md

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
# 凹语言中文实现小画家
2+
3+
- 时间:2025-11-01
4+
- 撰稿:凹语言开发组
5+
- 转载请注明原文链接:[https://wa-lang.org/smalltalk/st0091.html](https://wa-lang.org/smalltalk/st0091.html)
6+
7+
---
8+
9+
凹语言设计的目标之一是简单易用。但是对于新接触编程的儿童教学来说依然有一定的门槛。为此开发组在2024年春节期间尝试将面向创意编程的 [Processing](https://processing.org/) 理念引入凹语言,通过 `js/p5` 包可以轻松实现一些简单的互动创意设计。随着凹语言 v1.3.0 版本中文语法的正式发布,我们重新用中文来实现小画家程序。
10+
11+
## 1. 凹语言英文版的小画家程序
12+
13+
下面是当时一小学三年级小学生的第一个凹语言程序:
14+
15+
![](/st0037-01.jpg)
16+
17+
通过VS Code将以上的程序输入电脑,编译并执行的效果如下:
18+
19+
![](/st0037-02.png)
20+
21+
程序本身也非常简单:首先通过 `import` 引入 P5 包;然后在 `init` 初始化一个长宽都是400的画布并设置一个灰色背景色;`Draw` 函数负责每一帧的绘制,根据鼠标是否按下绘制不同大小的圆形。
22+
23+
下面是杭州一小学二年级的小学生通过一个绘制线段的程序互动的效果:
24+
25+
![](/st0037-03.png)
26+
27+
目前 `js/p5` 包的功能还有限,我们会在小朋友学习的过程中逐步完善。希望未来每个中国的小学生都能通过我国的编程语言入门并进行日常开发。
28+
29+
## 2. 凹语言中文版的小画家程序
30+
31+
现在我们用凹语言中文版语法,通过中文编程实现小画家程序:
32+
33+
![](/st0091-01.jpg)
34+
35+
36+
程序本身也非常简单:首先通过 `引入` 关键字引入“小画家”包(类似之前的p5包);然后在名为 `准备` 的函数初始化一个长宽都是400的画布并设置一个灰色背景色;`画画` 函数负责每一帧的绘制,根据鼠标是否按下选择画点还是连线。
37+
38+
执行的效果如下:
39+
40+
![](/st0091-02.jpg)
41+
42+
- 在线体验:[https://wa-lang.org/wa/p5-hello-wz/](https://wa-lang.org/wa/p5-hello-wz/)
43+
- 完整的代码:[https://gitcode.com/wa-lang/wa/tree/master/waroot/examples/p5-hello-wz](https://gitcode.com/wa-lang/wa/tree/master/waroot/examples/p5-hello-wz)
44+
45+
46+
## 3. 结语
47+
48+
凹语言在2019年立项,立项之初有个“不做玩具车”的共识。到了2022年底凹语言开源半年之后,开发组使用凹语言做出了第一个贪吃蛇样例游戏后,凹语言已经初步超越玩具车的阶段。之后凹语言开发组一直在进行编程启蒙方向的探索,比如在2022年底开发贪吃蛇游戏时实验性支持了Arduino的开发,在2024年春节实现了类似p5js编程框架。在一年半之后我们正式发布了凹语言的中文版,同时为中文用于重新打造了类似p5js的中文编程框架,也就是“小画家”启蒙编程包。
49+
50+
我们希望国内的孩子在编程启蒙阶段也能通过母语思维来进行数字化创作。凹语言中文版小画家不是终点,我们会一直在路上。

0 commit comments

Comments
 (0)