では「三次元版ライフゲーム」を 可視化 するバージョンを考えてみましょう。
テキストだけだと立体の変化が分かりにくいので、層ごとにグラフ表示する方法を紹介します。ここでは「各層を二次元のマトリクス」として描画し、ステップごとに進化を観察できるようにします。
可視化の考え方
- 三次元配列を「層ごとに二次元配列」として切り出す。
- 各セルの状態(生死)を色で表現する。
- 生きているセル → 黒
- 死んでいるセル → 白
- ステップごとに複数の層を並べて表示する。
コード例(Java + 出力イメージ)
Java単体ではグラフ描画が難しいので、ここでは「層ごとにテキスト表示」を行い、Pythonなどの可視化ライブラリを使うとさらに見やすくなります。
Javaでのテキスト可視化
static void printGrid(int[][][] grid, int step) {
System.out.println("Step " + step);
for (int z = 0; z < grid.length; z++) {
System.out.println("Layer " + z + ":");
for (int x = 0; x < grid[z].length; x++) {
for (int y = 0; y < grid[z][x].length; y++) {
System.out.print(grid[z][x][y] == 1 ? "■ " : "□ ");
}
System.out.println();
}
System.out.println("---");
}
}
Java出力イメージ
Step 0
Layer 0:
■ □ ■ □
□ □ ■ ■
■ □ □ □
□ ■ □ ■
---
Layer 1:
□ ■ □ ■
■ □ □ □
□ □ ■ ■
■ □ ■ □
---
Pythonでのグラフ可視化(おすすめ)
Pythonの matplotlib を使うと層ごとに画像として表示できます。
import matplotlib.pyplot as plt
import numpy as np
SIZE = 4
grid = np.random.randint(0, 2, (2, SIZE, SIZE)) # 2層のランダム初期化
def show_grid(grid, step):
layers = grid.shape[0]
fig, axes = plt.subplots(1, layers, figsize=(layers*3, 3))
for z in range(layers):
axes[z].imshow(grid[z], cmap="binary")
axes[z].set_title(f"Layer {z} (Step {step})")
axes[z].axis("off")
plt.show()
show_grid(grid, 0)
Pythonこれで「層ごとの進化」を画像として確認できます。
✅ まとめ
- 三次元ライフゲームは「層ごとに二次元表示」すると理解しやすい。
- Javaならテキスト表示、Pythonならグラフ表示が便利。
- ステップごとに表示すれば「立方体の進化」を追える。

