轨道
/
TypeScript
TypeScript
/
练习
/
皇后攻击
皇后攻击

皇后攻击

困难

说明

给定棋盘上两个皇后的位置,判断她们是否处于可以相互攻击的位置。

在国际象棋中,皇后可以攻击同一行、同一列或同一斜线上的棋子。

棋盘可以用一个 8×8 的数组表示。

所以,如果告诉你白皇后位于c5(从 0 开始索引,即第 2 列第 3 行),黑皇后位于f2(从 0 开始索引,即第 5 列第 6 行),那么这个局面就像这样:

一张国际象棋棋盘,上面有两个皇后。从 c5 处的皇后射出的箭头标出了沿列、行和斜线可以吃子的方向。

你同样可以回答这两个皇后能否相互攻击。 在这个局面中,答案是肯定的,她们可以,因为两个皇后位于同一条斜线上。

致谢

棋盘图片由 habere-et-dispertire 使用 LaTeX 和 Ulrike Fischer 的 chessboard 宏包 制作。

实现

皇后必须放在棋盘上的有效位置。 两个皇后不能占据同一个位置。

如果没有给定位置,两个皇后就位于各自的默认起始位置。 白皇后在底行(1),黑皇后在顶行(8)。 两个皇后都从第四列(d)开始。

  a b c d e f g h
8 _ _ _ B _ _ _ _ 8
7 _ _ _ _ _ _ _ _ 7
6 _ _ _ _ _ _ _ _ 6
5 _ _ _ _ _ _ _ _ 5
4 _ _ _ _ _ _ _ _ 4
3 _ _ _ _ _ _ _ _ 3
2 _ _ _ _ _ _ _ _ 2
1 _ _ _ W _ _ _ _ 1
  a b c d e f g h
通过 GitHub 编辑 链接将在新窗口或新标签页中打开
TypeScript Exercism

准备好开始 皇后攻击 了吗?

注册 Exercism,借助 108 个练习 和真人导师指导,学习并掌握 TypeScript,全部免费。