chinchiroのロジック解説(2)
サイコロの表示部分
最初は[4,5,6]のように数字で表示していたのですが、やはり味気ないのでサイコロの目の表示をするようにしました。 ロジックを説明します。コードのオブジェクトは、それぞれ1〜6まであるのですが、見やすいように今回は5だけにしています。
//diceEyesはダイスの目が3つ入った配列 printDice (diceEyes) { const diceAA1 = {5: ' | ● ● |' } const diceAA2 = {5: ' | ● |' } const diceAA3 = {5: ' | ● ● |' } console.log(' +-------+ +-------+ +-------+') process.stdout.write(`${diceAA1[diceEyes[0]]}`) process.stdout.write(`${diceAA1[diceEyes[1]]}`) console.log(`${diceAA1[diceEyes[2]]}`) process.stdout.write(`${diceAA2[diceEyes[0]]}`) process.stdout.write(`${diceAA2[diceEyes[1]]}`) console.log(`${diceAA2[diceEyes[2]]}`) process.stdout.write(`${diceAA3[diceEyes[0]]}`) process.stdout.write(`${diceAA3[diceEyes[1]]}`) console.log(`${diceAA3[diceEyes[2]]}`) console.log(' +-------+ +-------+ +-------+') }
このように表示したいので、3つのサイコロの上の線をconsole.logで表示。(+---...の部分) 次にdiceAA1(サイコロの目を上中下3つに分けた上の部分だけ)をprocess.stdout.writeで左のサイコロから順番に繋げて表示、右のサイコロまできたらconsole.logで表示して改行するようにしました。これをdiceAA2(サイコロの目の真ん中の段)、diceAA3(下の段)と繰り返し、最後にサイコロの下の線を表示することでサイコロを3つ横に表示することができました。