1.问题描述:
假设中国象棋的棋盘上只有“将”和“帅”,这两个棋子。
根据象棋的规则,写出“将”和“帅”所有可能的合法位置。
要求只能声明一个变量。
2.建模
由棋盘上的布局可知,“将”和“帅”的运动范围在一个3×3
的格子里。
1——2——3
| | |
4——5——6
| | |
7——8——9
上面的模型模拟“将”或“帅”的所有可能位置,因为“将”和“帅”
不能同时在同一列,所以当“将”在1,4,7的位置时,“帅”在2,3,5,6,8,9位置。反之亦然。
下面用A代表“将”,用B代表“帅”来进行模拟。
这个问题及算法转自《编程之美》。