csharp高级练习题:Esolang口译#3 - 自定义Paintf ** 亩解释【难度:4级】:
- 对于这个习题的其余部分,我会建议考虑"他妈的"是不可亵渎.*
Esolang口译#3 - 自定义Paintfuck解释
关于本系列习题
"Esolang口译"是习题系列最初开始作为三个分开的,独立的esolang解释习题撰写由@donaldsebleung,其所有共享一个类似格式和均稍微间有关.在[同胞的CodeWarrior(https://www.codewars.com/users/nickkwest)的影响,这些相互关联的三个高级习题逐渐演变成今天所被称为"Esolang口译"系列.
该系列产品是一个高层次的习题系列旨在通过实施口译各种挑战明亮的头脑,敢于程序员[深奥的编程语言/ Esolangs(http://esolangs.org),主要是[Brainfuck(HTTP:// esolangs.org/wiki/Brainfuck)衍生物,但不限于它们,给定某一Esolang一定规格.也许唯一的例外是该系列的第一个习题这是旨在向大家介绍/品酒师为他们深奥的编程语言和书面翻译的世界.
语言
Paintfuck是边缘-深奥的编程语言/ Esolang,它是一个衍生物[Smallfuck]的(http://esolangs.org/wiki/Smallfuck)(本身的衍生物的著名 Brainfuck),其使用了二维数据网格而不是一维带.
在Paintfuck有效的命令包括:
N
- 移动数据指针北(上)e
- 移动数据指针东(右)s
- 移动数据指针向南(下)w
- 移动数据指针西(左)*
- 翻转在当前小区(相同Smallfuck)的位[
- 跳转过去匹配]
如果当前指针下位为’0`(同Smallfuck)]
- 跳回匹配[
(如果当前指针下位为非零)(同Smallfuck)
说明书中指出,任何非命令字符(即比以上提及的那些以外的任何字符)应该简单地被忽略.解释器的输出是所述二维数据网格本身,最好为动画作为解释正在运行,但至少一定次数的迭代之后的数据网格本身的表示(在任务稍后解释).
在当前的实施方式中,2D数据网格与环形(包裹的)行为大小有限.这是从Smallfuck Paintfuck的几个主要区别之一作为Smallfuck终止(通常)每当指针超过胶带的边界.
类似Smallfuck,Paintfuck是图灵完备的** 当且仅当** 的2D数据网格/帆布在大小不受限制.然而,由于数据网格的尺寸被定义为有限的,它的作用就像一个有限状态机.
在这个Esolang更多信息,可以发现这里.