學習軌道
/
Java
Java
/
練習
/
迷宮小鼠
迷宮小鼠

迷宮小鼠

困難

簡介

來認識 Mickey 和 Minerva 吧,這兩隻聰明的小老鼠最愛在迷宮裡穿梭,尋找起司。牠們喜歡挑戰,但憑著小小的鼠腦,還是希望通往起司的正確路徑只有一條。

說明

你的任務是為 Mickey 和 Minerva 產生完美的迷宮,也就是只有唯一解、沒有孤立區域的迷宮。以下是你需要知道的事:

  • 迷宮是長方形,起點和終點各有一個開口。
  • 迷宮由房間和通道組成,它們以直角相交。
  • 程式應該接受兩個參數:列數和欄數。迷宮的大小應該介於 5 到 100 格之間。
  • 寬x欄、高y列的迷宮,寬度應該是2x + 1個字元,高度則是2y + 1個字元。
  • 如果沒有提供種子,就產生隨機的迷宮。如果多次提供相同的種子,每次產生的迷宮應該都一樣。
  • 使用框線字元來畫牆,並用箭頭符號(⇨)表示左邊的入口和右邊的出口。

現在就為這些愛冒險的小老鼠打造完美的迷宮吧!

範例

  1. 一個 5x5 格(或 11x11 字元)的小型正方形迷宮

    ┌───────┬─┐
    │       │ │
    │ ┌─┬── │ │
    │ │ │   │ ⇨
    │ │ │ ──┤ │
    ⇨ │ │   │ │
    ┌─┤ └── │ │
    │ │     │ │
    │ │ ────┘ │
    │         │
    └─────────┘
    
  2. 一個 6x18 格的長方形迷宮

    ┌───────────┬─────────┬───────────┬─┐
    │           │         │           │ │
    │ ┌───────┐ │ ┌─┐ ──┐ └───┐ ┌───┐ │ │
    │ │       │ │ │ │   │     │ │   │   ⇨
    │ └─┐ ┌─┐ │ │ │ ├── ├───┐ │ │ ──┼── │
    │   │ │ │   │   │   │   │ │ │   │   │
    └── │ │ ├───┴───┤ ┌─┘ ┌─┘ │ ├── │ ──┤
    ⇨   │   │       │ │   │   │ │   │   │
    ┌─┬─┴─┐ └─┐ ┌─┐ │ └─┐ │ ┌─┘ │ ──┴─┐ │
    │ │   │   │ │ │ │   │   │   │     │ │
    │ │ │ └── │ │ │ └── │ ──┘ ┌─┘ ──┐ │ │
    │   │       │       │     │     │   │
    └───┴───────┴───────┴─────┴─────┴───┘
    
透過 GitHub 編輯 連結會在新視窗或分頁中開啟
Java Exercism

準備好開始 迷宮小鼠 了嗎?

註冊 Exercism,透過 26 個概念158 個練習 和真人引導來學習並精通 Java,全部免費。