棋盤

棋盤

學習練習

簡介

範圍

範圍代表由一個或多個連續整數組成的序列。只要用..連接兩個整數,就能建立範圍。

1..5

範圍可以是遞增,也可以是遞減。而且一律包含第一個和最後一個值。

範圍實作了 Enumerable 協定,這表示可以使用Enum模組中的函式來操作範圍。

說明

身為西洋棋愛好者,你應該會想寫一套自己的西洋棋。沒錯,線上或許已經有很多現成的實作,但你的版本會獨一無二!

不過在盡情發揮想像力之前,得先處理基本的部分。我們先從產生棋盤開始吧。

棋盤上的每個方格都由一組字母與數字標示。垂直的方格行稱為直行(英文:files),標示為 A 到 H;水平的方格列稱為橫列(英文:ranks),編號為 1 到 8。

1. 定義橫列的範圍

實作rank_range/0函式。它應該回傳從 1 到 8 的整數範圍。

Chessboard.rank_range()

2. 定義直行的範圍

實作file_range/0函式。它應該回傳從大寫字母 A 的碼位到大寫字母 H 的碼位的整數範圍。

Chessboard.file_range()

3. 將橫列的範圍轉換成橫列的陣列

實作ranks/0函式。它應該回傳從 1 到 8 的整數陣列。不要手動寫出這個陣列,請用rank_range/0函式回傳的範圍來產生。

Chessboard.ranks()
# => [1, 2, 3, 4, 5, 6, 7, 8]

4. 將直行的範圍轉換成直行的陣列

實作files/0函式。它應該回傳從 "A" 到 "H" 的字母(字串)陣列。不要手動寫出這個陣列,請用file_range/0函式回傳的範圍來產生。

Chessboard.files()
# => ["A", "B", "C", "D", "E", "F", "G", "H"]
透過 GitHub 編輯 連結會在新視窗或分頁中開啟
Elixir Exercism

準備好開始 棋盤 了嗎?

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