Skip to content

Instantly share code, notes, and snippets.

@akkkix
Created May 3, 2017 23:37
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save akkkix/b9b50aa2b15cc81237d22f07f008c3e7 to your computer and use it in GitHub Desktop.
Save akkkix/b9b50aa2b15cc81237d22f07f008c3e7 to your computer and use it in GitHub Desktop.
BrainFu*k
function exe(){
document.getElementById("disp").innerText = "";
var mem = [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];
var mempos=0;
var code = document.getElementById("z").value;
var codepos = 0;
while(codepos<=code.length){
switch(code.charAt(codepos)){
case ">":
mempos++;
break;
case "<":
mempos--;
break;
case "+":
mem[mempos]++;
break;
case "-":
mem[mempos]--;
break;
case ".":
document.getElementById("disp").innerText += String.fromCharCode(mem[mempos]);
alert(mem[mempos])
break;
case ",":
mem[mempos] = parseInt(document.getElementById("y").value);
break;
case "[":
if(mem[mempos]==0){
kakko=0;
while(true){
codepos++;
if(code[codepos]=="]"&&kakko==0){
break;
}
if(code[codepos]=="["){
kakko++;
}
if(code[codepos]=="]"&&kakko>0){
kakko--;
}
}
}
break;
case "]":
if(mem[mempos]!=0){
kakko=0;
while(true){
codepos--;
if(code[codepos]=="["&&kakko==0){
break;
}
if(code[codepos]=="]"){
kakko++;
}
if(code[codepos]=="["&&kakko>0){
kakko--;
}
}
}
break;
}
codepos++;
}
}
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<script src=script.js></script>
<title>test</title>
</head>
<body>
<form >
<input type="text" id="z" placeholder="code">
<input type="button" onclick="exe();" >
<input type="text" id="y" placeholder="input">
</form>
<div id="disp">
</div>
</body>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment