どうもAtsu1209です。
前回記事BrainF*ckを叫ばせる話 C++編
は見ていただけましたでしょうか?
前回記事の最後に今度JSでも変換ツール作ります。
と書いてあります。
なのでしっかりとJSでもAaaLang
に変換できるようにします。
AaaLangとは
C++編
AaaLangとは
AaaLangとはBrainF*ckをもとにC++で作ったやつです。
BrainF*ckの対応表を貼っておく
Brainfuck | AAA |
---|---|
> |
AAA |
< |
AAa |
+ |
AaA |
- |
Aaa |
. |
aAA |
, |
aAa |
[ |
aaA |
] |
aaa |
JSコード
function convertCode() {
const input = document.getElementById('input').value;
const output = document.getElementById('output');
let converted = '';
const conversionMap = {
'>': 'AAA',
'<': 'AAa',
'+': 'AaA',
'-': 'Aaa',
'.': 'aAA',
',': 'aAa',
'[': 'aaA',
']': 'aaa'
};
for (let char of input) {
if (conversionMap[char]) {
converted += conversionMap[char];
} else {
converted += char;
}
}
output.textContent = converted;
}
function copyToClipboard() {
const output = document.getElementById('output').textContent;
navigator.clipboard.writeText(output).then(() => {
alert('クリップボードにコピーしました!');
}).catch(err => {
alert('コピーに失敗しました: ' + err);
});
}
クリップボード機能もつけておきました。
実際に変換する
変換するワードは前回と同じく5000TYO!
です。5000兆円 欲しい!風です。
BrainF*ckコード
++++++[>+++++++++<-]>-.
>++++++[>++++++++<-]>.
>++++++[>++++++++<-]>.
>++++++[>++++++++<-]>.
>+++++++++[>+++++++++<-]>+++.
>+++++++++[>+++++++++<-]>++++++++.
>++++++++[>+++++++++<-]>+++++++.
>+++[>+++++++++++<-]>.
結果
AaAAaAAaAAaAAaAAaAaaAAAAAaAAaAAaAAaAAaAAaAAaAAaAAaAAAaAaaaaaAAAAaaaAAAAAAaAAaAAaAAaAAaAAaAaaAAAAAaAAaAAaAAaAAaAAaAAaAAaAAAaAaaaaaAAAaAAAAAAaAAaAAaAAaAAaAAaAaaAAAAAaAAaAAaAAaAAaAAaAAaAAaAAAaAaaaaaAAAaAAAAAAaAAaAAaAAaAAaAAaAaaAAAAAaAAaAAaAAaAAaAAaAAaAAaAAAaAaaaaaAAAaAAAAAAaAAaAAaAAaAAaAAaAAaAAaAAaAaaAAAAAaAAaAAaAAaAAaAAaAAaAAaAAaAAAaAaaaaaAAAAaAAaAAaAaAAAAAAaAAaAAaAAaAAaAAaAAaAAaAAaAaaAAAAAaAAaAAaAAaAAaAAaAAaAAaAAaAAAaAaaaaaAAAAaAAaAAaAAaAAaAAaAAaAAaAaAAAAAAaAAaAAaAAaAAaAAaAAaAAaAaaAAAAAaAAaAAaAAaAAaAAaAAaAAaAAaAAAaAaaaaaAAAAaAAaAAaAAaAAaAAaAAaAaAAAAAAaAAaAAaAaaAAAAAaAAaAAaAAaAAaAAaAAaAAaAAaAAaAAaAAAaAaaaaaAAAaAA
C++プロジェクトに戻ってcode.aaaa
にこのコードを入力してみる。
出力結果
5000TYO!
しっかり変換できました。
最後に
GithubPagesで公開するかもです。