首页 文章 精选 留言 我的
优秀的个人博客,低调大师

微信关注我们

原文链接:https://yq.aliyun.com/articles/699482

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

JavaScript实现ZLOGO子集: 前进+转向

在前文《中文编程语言之Z语言初尝试: ZLOGO 4》与相关讨论后, 萌生了用JavaScript编写类似语言以便在线编程的想法. 于是使用 @TKT2016 (知乎账号)的ZLOGO语法设计, 在《编程语言试验之Antlr4+JavaScript实现"圈4"》基础上, 通过p5js的绘图功能, 实现了基本的两个ZLOGO功能. 如图(动态效果看起来更爽一点, 当然要耐心等它画完, 请自行尝试): 源码库: program-in-chinese/quan3, 导出代码到本地后, 在浏览器中打开"圈3.html"即可在本地实践编程. 在线演示: 【见原文】 由于还不支持循环, 实现这个五角星的代码很重影: 开始 前进200 左转144度 前进200 左转144度 前进200 左转144度 前进200 左转144度 前进200 结束 下面是编程语言试验之Antlr4+JavaScript实现"圈4"之后添加的主要部分:语法文件(圈3.g4): 声明 : 前进 | 转向; 前进 : '前进' T数 ; 转向 : T转向 '转' T数 '度' ; T转向 : '左' | '右' ; 主要修改在...

JavaScript实现ZLOGO子集: 单层循环功能

前文《JavaScript实现ZLOGO子集: 前进+转向》的示例代码很累赘, 因此尝试实现基本的循环功能, 使得前面的11行代码缩减为7行: 开始 循环4次 前进200 左转144度 到此为止 前进200 结束 源码和在线演示地址同前文. 修改的语法描述(圈3.g4)不多, 应该已经支持多层循环: 声明 : 前进 | 转向 | 循环; 循环 : '循环' T数 '次' 声明+ '到此为止' ; 但实现上, 暂时先做了单层. 就是将循环体内的指令存放起来, 在循环结束时, 把它们按循环次数重复添加到最终的指令序列中: // TODO: 支持多层循环 var 循环次数 = 0; var 当前循环的指令序列 = []; ... 定制监听器.prototype.enter循环 = function(上下文) { 循环次数 = parseInt(上下文.getChild(1).getText()); } 定制监听器.prototype.exit循环 = function(上下文) { for (var i = 0; i < 循环次数; i++) { for (var j = 0; j &...

相关文章

发表评论

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Apache Tomcat

Apache Tomcat

Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。

Eclipse

Eclipse

Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。