User:Kiken/vector.js
Jump to navigation
Jump to search
Note: After publishing, you may have to bypass your browser's cache to see the changes.
- Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
- Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
- Internet Explorer / Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5
- Opera: Press Ctrl-F5.
// js interpreter for morse code (esolang) try{ function morseCode(code) { let yield_ = code; let index = 0; let morsetochar = { ".-": "A", "-...": "B", "-.-.": "C", "-..": "D", ".": "E", "..-.": "F", "--.": "G", "....": "H", "..": "I", ".---": "J", "-.-": "K", ".-..": "L", "--": "M", "-.": "N", "---": "O", ".--.": "P", "--.-": "Q", ".-.": "R", "...": "S", "-": "T", "..-": "U", "...-": "V", ".--": "W", "-..-": "X", "-.--": "Y", "--..": "Z", ".----": "1", "..---": "2", "...--": "3", "....-": "4", ".....": "5", "-....": "6", "--...": "7", "---..": "8", "----.": "9", "-----": "0", ".-.-.-": ".", "--..--": ",", "..--..": "?", "": "" }; while (yield_) { if (index + 1 <= code.length) { if (code[index] == ".") { if (code[index + 1] == ".") { yield_ = yield_.slice(1, yield_.indexOf("-")) + "." + yield_.slice(yield_.indexOf("-")); } else if (code[index + 1] == "-") { yield_ = yield_.slice(1, yield_.indexOf(".")) + "-" + yield_.slice(yield_.indexOf(".")); } else { yield_ = yield_.slice(1); } continue; } else if (code[index] == "-") { if (code[index + 1] == ".") { yield_ = yield_.charAt(1) + "-" + yield_.slice(1); } else if (code[index + 1] == "-") { yield_ = yield_.charAt(0) + yield_.slice(2); yield_ = yield_.slice(0, 3) + yield_.charAt(0) + yield_.slice(3); } else { yield_ = yield_.slice(1) + yield_; } continue; } else { break; } } else { break; } index += 1; } let englishPlainText = ""; let morseCode = yield_; let currentCharMorseCode = ""; let i = 0; while (i < morseCode.length - 1) { if (morseCode[i] == " ") { if (currentCharMorseCode.length == 0 && morseCode[i + 1] == " ") { englishPlainText += " "; i += 1; } else { englishPlainText += morsetochar[currentCharMorseCode]; currentCharMorseCode = ""; } } else { currentCharMorseCode += morseCode[i]; } i += 1; } if (currentCharMorseCode.length > 0) { try { englishPlainText += morsetochar[currentCharMorseCode]; } catch (err) { englishPlainText += "#"; } } return englishPlainText; } var inp = document.createElement("input"); var btn = document.createElement("button"); var out = document.createElement("p"); var div = doument.createElement("div"); div.style.position = "fixed"; inp.style.top = "100px"; btn.style.top = "100px"; out.style.top = "100px"; btn.innerText = "submit"; out.innerText = "output goes here"; inp.placeholder = "input goes here"; inp.style.left = "100px"; btn.style.left = "100px"; out.style.left = "100px"; out.id = "out"; btn.onclick = function () {document.getElementById("out").innerText = morseCode(inp.value);}; document.body.appendChild(div); div.appendChild(inp); div.appendChild(btn); div.appendChild(out); }catch(_0xe499b9){alert(_0xe499b9.message)}