棋盘

棋盘

学习练习

简介

区间

区间表示一个或多个连续整数组成的序列。用..把两个整数连接起来,就能创建一个区间。

1..5

区间可以递增,也可以递减。它始终包含首尾两个值。

区间实现了 Enumerable 协议,这意味着可以使用Enum模块中的函数来处理区间。

说明

作为一名国际象棋爱好者,你想写出属于自己的版本。没错,网上可能已经有很多现成的国际象棋实现,但你的版本一定会独一无二!

不过,在放飞想象力之前,得先把基础打好。我们先从生成棋盘开始吧。

棋盘的每一格都由一个字母和一个数字的组合来标识。竖直方向的各列(file)用 A 到 H 标记,水平方向的各行(rank)用 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,全部免费。