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つ横に表示することができました。