csharp高级练习题:Esolang口译员#4 - Boolfuck口译员【难度:5级】:
- 对于这个Kata的其余部分,我建议将"他妈的"视为非亵渎.*
Esolang译员#4 - Boolfuck口译员
关于这个Kata系列
"Esolang Interpreters"是一个Kata系列,起初是由@donaldsebleung撰写的三个独立的独立esolang翻译Kata,它们都有相似的格式,并且都有点相互关联有关.在同伴Codewarrior的影响下,这三个高级别相关的Kata逐渐演变成今天所知的"Esolang Interpreters"系列.
本系列是一个高级习题系列,旨在通过实现各种深奥编程语言/ Esolangs的解释器来挑战聪明而大胆的程序员的思想,主要是[Brainfuck](http:// esolangs.org/wiki/Brainfuck)衍生物但不限于它们,给定某种Esolang的特定规格.也许这个规则的唯一例外是本系列中的第一个Kata,它旨在作为深奥编程语言世界的介绍/品尝者,并为他们编写解释器.
语言
Boolfuck是一个深奥的编程语言(Esolang),基于着名的Brainfuck(也是一个Esolang)根据官方网站于2004年或2005年发明.除了一些关键的区别外,它与Brainfuck非常相似:
- Boolfuck使用位而不是字节
- Brainfuck的磁带包含正好30,000个单元格,指针从左边开始; Boolfuck包含一个无限长的磁带,指针从"中间"开始(因为磁带可以无限延伸任一方向)
- Boolfuck中的每个单元格只能包含值"0"或"1"(即位不是字节),而不是Brainfuck,其中单元格的值包含从"0"到"255"的值.
- Boolfuck中的输出命令是
;
NOT.
- “-`命令确实** 不存在于Boolfuck中,因为”+“或”-"无论如何都会翻转
无论如何,这是一个命令列表及其描述:
+
- 翻转指针下的位值,
- 从输入流中读取一些内容,将其存储在指针下.但是,最终用户使用字符键入信息.字节以小端顺序读取 - 从字符"a"读取的第一位,例如,1,然后是0,0,0,0,1,1,最后是0.如果结束已到达文件,向指针下的位输出零.;
- 将指针下的位输出到输出流.这些位以小端顺序输出,与输入的顺序相同.如果在程序结束时输出的总位数不是8的倍数,则输出的最后一个字符在更重要的一端用零填充.<
- 将指针向左移动1位>
- 将指针向右移动1位[
- 如果指针下的值是’0,则跳到相应的
]`]
- 如果指针下的值是’1,则跳回匹配的
[`字符
如果您尚未为Brainfuck编写翻译,我建议您完成此Kata首先.
任务
写一个Boolfuck解释器,最多接受两个参数.第一个(必需的)参数是字符串形式的Boolfuck代码.第二个(可选)参数是** 最终用户** 传入的输入(即实际字符而不是位),如果没有提供,则默认为""".您的解释器应将输出作为字符串返回实际字符(而不是位!).
函数boolfuck(code,input ="")
ç
char * boolfuck(char * code,char * in)
char * boolfuck(const char * code,const char * in)
public static String interpret(字符串代码,字符串输入)
let interpret(code:string)(input:string):string
def boolfuck(代码,输入)
去
func Boolfuck(代码,输入字符串)字符串
生锈
fn boolfuck(代码:&str,输入:Vec ) - > Vec
boolfuck :: String - > String - > String
为你预装的是一个函数brainfuckToBoolfuck()
/brainfuck_to_boolfuck()
/BrainfuckToBoolfuck()
它接受1个必需的参数(Brainfuck代码)并返回它的Boolfuck等价物,如果你觉得它有用.
请注意,您的解释器应该忽略任何非命令字符. ** 这将在测试用例中进行测试.**
如有疑问,请随时引用官方网站(顶部链接).
祝你好运:D
Kata在这个系列中
- Esolang口译员#1 - Esolangs和我的第一个口译员(MiniStringFuck)简介
- Esolang Interpreters#2 - Custom Smallfuck Interpreter
- Esolang Interpreters#3 - Custom Paintfuck Interpreter
- ** Esolang口译员#4 - Boolfuck口译员**
编程目标:
using System;
public class Boolfuck {
public static string interpret (string code, string input) {
return "";
}
}
测试样例:
namespace Solution {
using NUnit.Framework;
using System;
[TestFixture]
public class BoolfuckTest {
[Test]
public void testEmpty () {
. (, . (. (""), ""));
}
[Test]
public void testSingleCommands () {
Assert.AreEqual ("", Boolfuck.interpret ("<", ""));
Assert.AreEqual ("", Boolfuck.interpret (">", ""));
Assert.AreEqual ("", Boolfuck.interpret ("+", ""));
Assert.AreEqual ("", Boolfuck.interpret (".", ""));
最佳答案(多种解法):
更多关联题目:
csharp进阶练习题:猫和狗的数组矩阵【难度:2级】–景越C# 经典编程题库,不同难度C# 练习题,适合自学C# 的新手进阶训练
免责申明
本博客所有编程题目及答案均收集自互联网,主要用于供网友学习参考,如有侵犯你的权益请联系管理员及时删除,谢谢
题目收集至https://www.codewars.com/
https://www.codewars.com/kata/esolang-interpreters-number-4-boolfuck-interpreter