可以——你可以在手機觸控螢幕上,或完全靠鍵盤,來玩Skyscrapers Puzzle,全程都不需要滑鼠或觸控筆。這個小巧的 4×4 棋盤,是圍繞著三種輸入路徑打造的:指標、觸控,以及鍵盤,因此同一個謎題,在窄版手機畫面、平板,或桌機瀏覽器上,行為都完全一致。每一個方格,都是一個真正的按鈕,其可存取標籤中,包含了它的列、欄,以及目前的高度,而被選取的地塊,會有一個看得見的外框,不會只依賴顏色來呈現。這個棋盤,使用了零最小值的分數欄寬,這代表即使裝置寬度很窄,版面也能保持可讀。無論你偏好在螢幕上點選高度晶片,還是在實體鍵盤上按 1 到 4,規則、五個顯示出來的線索、十一個被省略的邊緣,以及那個已驗證的唯一解,在每一次造訪時,都完全相同。

在 Skyscrapers Puzzle 上的手機與鍵盤輸入
這個謎題背後的規範聲明,這個介面能同時支援指標、觸控,以及鍵盤輸入,而且輸入方式,絕不會改變你必須滿足的規則。十一個邊緣位置,被刻意省略,並以不起眼的小點顯示,而這些被省略的線索,佔用的空間,跟一個真正的線索一樣小巧,因此即使在小型手機上,這個棋盤也永遠不需要橫向捲動。這五個顯示出來的線索,在重新載入之間是穩定不變的,這代表你在筆電上解的這個能見度謎題,跟你在平板,或窄版手機畫面上會解的,是同一個謎題。
觸控玩家,會點選方格下方螢幕上的 1 到 4 控制項,然後移動到下一個地塊。鍵盤玩家,則是用方向鍵移動之後,按下對應的數字鍵。這兩條路徑,都會餵入同一份內部狀態,這也是為什麼同一個唯一正確的盤面,無論你是透過哪種方式達成的,都會獲得恰好 1,000 分。被選取地塊的外框,在兩種輸入路徑下都會顯示,因此無論是用手指逐格點過一整列的手機使用者,還是雙手放在主鍵位的桌機使用者,都能看到下一步動作的清楚錨點。
完整鍵盤控制:方向鍵、數字鍵、Delete、Enter
| 按鍵 | 在 Skyscrapers Puzzle 上的動作 |
|---|---|
| 方向鍵(↑ ↓ ← →) | 在 4×4 方格中,把選取的地塊向上、向下、向左,或向右移動 |
| 1、2、3、4 | 在目前選取的地塊中,輸入該高度 |
| Delete 或 Backspace | 清除目前選取地塊中的高度 |
| Enter | 在全部 16 個地塊都填有高度之後,執行 Check skyline |
一旦選取了一個地塊,你就完全不需要離開鍵盤。選取狀態,會隨著方向鍵在方格中移動,因此你可以在不把手指離開主鍵位的情況下,填完整整一列。Enter 只有在全部十六個地塊,都填有 1 到 4 之間的數值時才有意義,因為檢查一個未完成的盤面,不會消耗一次犯錯機會,只會顯示一則提醒。Backspace 與 Delete 可以互相替代,如果你的鍵盤配置只提供其中一個,這一點就很重要。這裡並沒有獨立的「鎖定」或「送出」鍵——這個謎題,把每一次按下 Enter,都當成單一一次檢查動作,而畫面上的 Check skyline 按鈕,做的正是同一件事。如果你原本就純靠鍵盤玩其他的本地邏輯謎題,同樣的節奏可以直接沿用;想看一個類似的、完全不需要滑鼠的謎題操作說明,請參閱Can I Play Nonogram Without a Mouse? Keyboard Guide。
如何玩 Skyscrapers Puzzle
- 選取一個地塊,然後用畫面上的控制項,或鍵盤,輸入一個 1 到 4 之間的高度;用方向鍵移動,用 Delete 清除。
- 在每一列與每一欄中,把每個高度恰好放置一次,然後從每一個顯示出來的邊緣線索出發,數出可見的建築物數量,因為較高的建築物,會擋住較矮的建築物。
- 填滿全部 16 個地塊,然後按下 Enter 或 Check skyline;在第二次錯誤導致這一輪死鎖之前,先修正第一次不正確的完整嘗試。
這三個步驟背後,是已公開發布的產品規則:每一格,代表一棟高度為 1 到 4 之間某個數字的建築物,每一列,都必須恰好包含全部四種高度各一次,每一欄,也是如此,而外圍的數字,描述的是從那個方向觀看那條線時,能看到多少棟建築物。一棟建築物,只有在它比它前面的每一棟建築物都高時,才算可見,因此一棟高大的前景建築物,會擋住它後面所有較矮的建築物。第 3 步,正是純鍵盤流程匯聚的地方:一旦全部十六個地塊,都填有 1 到 4 之間的數值,只需要按一次 Enter(或點一次 Check skyline),就能結算這一輪。
因為這個謎題,隨附的是唯一一份固定的、由產品方撰寫的固定夾具,所以你第一天看到的線索,跟你第五十天看到的,是同一批線索。正是這種穩定性,讓這份規範,能夠驗證這個拉丁方陣解答、獨立計算出每一個方向性線索、透過排列回溯法證明這個唯一解,並證明這五個顯示出來的線索中,每一個都是必要的——沒有一個,是可以由其他四個推導出來的。
觸控控制與窄版手機畫面
在手機上,每一個方格,都會變成一個可點擊的目標。畫面上的 1 到 4 數字控制項,位於方格下方,並符合本站的觸控高度慣例,因此它們的尺寸,是為手指設計的,而不是為滑鼠指標設計的。被選取的地塊,會顯示一個看得見的外框,不會只依賴顏色來呈現,這在陽光強烈、對比度不佳的情況下,格外重要。零最小值的分數欄寬設計,能讓整個 4×4 棋盤,連同它的邊緣線索,都保持在窄版手機畫面之內,不需要橫向捲動。
這個共用的遊戲框架,在手機上,同樣提供了本站連按兩下 Escape 的老闆鍵:按兩下,會暫時把這個謎題,換成一個試算表風格的畫面,再切換回去時,會恢復成原本未變動的盤面。所有謎題狀態,都留在目前的瀏覽器中;這個遊戲,不會上傳這個方格、不會呼叫任何謎題服務、不會要求帳號,也不會引入任何新的用戶端相依套件。如果本機儲存空間可用,透過現有的框架,只會保留最佳完成分數,這代表在同一個瀏覽器上,從手機切換到筆電,只會帶過去已儲存的最佳分數,而不會帶過去進行到一半的盤面。
邊緣線索如何計算可見的建築物數量
一個邊緣線索,就是從那個方向往內掃描那一列或那一欄時,能看到的建築物數量。第一棟建築物,永遠算數。在那之後,只有在後面出現的建築物,比目前為止的最大值更高時,可見數量才會加一——一棟比較矮的建築物,會被前面出現過的建築物擋住,維持不可見。這份固定夾具中,公開的五個線索,涵蓋不同的列與欄,而十一個被省略的邊緣位置,則以不起眼的小點顯示;一個被省略的線索,不會強加任何額外的條件,但列與欄的排列規則,在那些邊緣,依然適用。
| 邊緣線索數值 | 在一條 4 格的線中,代表什麼意思 |
|---|---|
| 1 | 從那個邊緣看,可能的最高建築物(高度 4)必須排在最前面,這樣後面所有的建築物才都會被擋住 |
| 2 | 從那個邊緣,恰好會看到兩棟建築物;順序,是好幾種合法排列方式之一 |
| 3 | 從那個邊緣,恰好會看到三棟建築物;符合條件的排列方式很少 |
| 4 | 從那個邊緣起,高度必須嚴格遞增為 1、2、3、4——只有一種排列方式符合 |
取自規範中的一次實際掃描示範:以列 2、1、4、3 為例,從左向右掃描。從可見數量 0 與目前最大值 0 開始。第一棟建築物,高度 2,超過了目前的最大值,因此可見數量升到 1,最大值變成 2。高度 1 比 2 矮,因此保持不可見,數量維持在 1。高度 4 超過了 2,因此可見數量升到 2,最大值變成 4。高度 3 比 4 矮,因此保持不可見。最終的可見數量是 2,符合這一列左側的線索。邊界線索,是很有用的心理錨點,因為它們,會把最高的建築物,釘在正確的邊緣上,或強制要求一個嚴格遞增的順序,但它們只有在某一列的候選方案,把某個高度固定在某一欄之後,才會發揮作用——到了那個時候,那一欄中的其他格子,就必須從它們的可能性中,排除那個高度。
犯錯、死鎖,以及 1,000 分完賽
這套兩次犯錯政策,是輸入流程的一部分,因此純鍵盤玩家,與手機玩家,看到的都是同一套規則。檢查一個未完成的方格,會顯示一則指引提醒,並不會消耗一次犯錯機會——你可以繼續編輯。一個已填滿、但違反了某一列、某一欄,或某個線索的方格,會記錄一次錯誤,但仍然可以編輯,這給了你一個修正的機會。第二次不正確的完整檢查,會讓這一輪死鎖,直到你按下 Restart 為止,而 Restart,永遠會恢復成同一個空的 4×4 棋盤、同一組五個線索、零分,以及零犯錯次數。
唯一正確的盤面,會獲得恰好 1,000 分。已完成與死鎖,都是終止狀態:一旦到達其中任一種終止狀態,數字輸入、清除、移動、選取,以及額外的檢查動作,都無法再改變結果。因為這份固定夾具是固定不變的,你在這個謎題上,能記錄到的最佳分數,就是 1,000 分——沒有隱藏的額外加分,沒有連勝倍數,也沒有時間加分。如果你想繼續玩,Restart 會恢復同一個盤面,並給你一個乾淨的重新開始。
如果你正在權衡選項,Can You Play City Builder Game Without Downloading? 對此有詳細說明。