トラック
/
Elixir
Elixir
/
演習
/
チェス盤
チェス盤

チェス盤

学習演習

はじめに

範囲

範囲は、1つまたは複数の連続した整数の並びを表します。2つの整数を..でつなげて作ります。

1..5

範囲は昇順にも降順にもできます。最初と最後の値は必ず含まれます。

範囲は_Enumerableプロトコル_を実装しているので、Enumモジュールの関数を使って範囲を扱うことができます。

説明

チェスの愛好家なら、このゲームの自分だけのバージョンを書いてみたくなるでしょう。ええ、すでにオンラインにはたくさんのチェスの実装があるかもしれませんが、自分だけのものは唯一無二です!

しかし、想像力を存分に働かせる前に、基本を押さえる必要があります。まずは盤面を生成するところから始めましょう。

チェス盤の各マスは、文字と数字の組み合わせで識別されます。マスの縦の列はファイルと呼ばれ、AからHまでのラベルが付いています。マスの横の行はランクと呼ばれ、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を学んでマスターできます。すべて無料です。