【TypeScript】迷路を出力する

通路を「0」、壁を「1」とした2次元配列で迷路を表現して、
通路を「 」(半角スペース)、壁を「#」として1行ごとに改行して出力する。

const PATH: number = 0;
const WALL: number = 1;

const maze: number[][] = [
  [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
 [1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1],
 [1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1],
 [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1],
 [1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1],
 [1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1],
 [1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1],
 [1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1],
 [1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1],
 [1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1],
 [1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 1],
 [1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1],
 [1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 1],
 [1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1],
 [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
];

const print_maze = (): void => {
  let arr: string;
  for(let row of maze) {
    arr = '';
    for(let cell of row) {
      if (cell === WALL) {
        arr += '#';
      } else if (cell === PATH) {
        arr += ' ';
      }
    }
    console.log(arr);
  }
}

print_maze();

今回は、以下のように出力される。

###############
# # #   # #   #
# # # ### ### #
#             #
# # ### ##### #
# # #       # #
# ########### #
#     #       #
# ### ##### # #
#   #     # # #
### ### # ### #
#     # # #   #
### ### ### # #
#     # #   # #
###############
タイトルとURLをコピーしました