国际象棋大师挑战赛
项目描述
国际象棋大师
控制台脚本,实现国际象棋挑战。
问题是找到所有独特的配置,将一套普通棋子放在M×N尺寸的棋盘上,没有任何棋子处于可以吃掉其他棋子的位置。假设棋子的颜色不重要,并且这些棋子中没有兵。
编写一个程序,它接受以下输入
棋盘的尺寸:M,N
每种类型的棋子(国王、王后、象、车和马)的数量,尝试将其放置在棋盘上。
作为输出,程序应将所有可以放置在棋盘上且不威胁对方的唯一配置列出到控制台。
构建状态
如何安装
PIPY
pip install fbcs_chess_challenge
Github
从Github下载包
python setup.py install
运行测试
python setup.py tests
或者
python setup.py nosetests –with-coverage
运行控制台脚本
帮助
(chessmaster)MacBook-Pro:chess_master fabiobatalha$ playchess --help
usage: playchess [-h] [--board_size BOARD_SIZE] [--bishops BISHOPS]
[--kinights KINIGHTS] [--kings KINGS] [--pawns PAWNS]
[--queens QUEENS] [--rooks ROOKS] [--show_threatening]
Build a chess board with pieces which will not threatening one to another.
optional arguments:
-h, --help show this help message and exit
--board_size BOARD_SIZE, -s BOARD_SIZE
Number of squares in the board
--bishops BISHOPS, -b BISHOPS
Number of bishops
--kinights KINIGHTS, -i KINIGHTS
Number of kinights
--kings KINGS, -k KINGS
Number of kings
--pawns PAWNS, -p PAWNS
Number of pawns
--queens QUEENS, -q QUEENS
Number of Queens
--rooks ROOKS, -r ROOKS
Number of rooks
--show_threatening, -t
Show threatening places display T in the board when
printing the results, otherwise None will be displayed
运行示例
(chessmaster)MacBook-Pro:chess_master fabiobatalha$ playchess -s 4 -i 4 -r 2
2016-08-12 01:22:11,660 - masterchess.playchess - INFO - Playing Chess
2016-08-12 01:22:11,661 - masterchess.playchess - INFO - Board size: 4
2016-08-12 01:22:11,661 - masterchess.playchess - INFO - Pieces of bishops: 0
2016-08-12 01:22:11,661 - masterchess.playchess - INFO - Pieces of kinights: 4
2016-08-12 01:22:11,661 - masterchess.playchess - INFO - Pieces of kings: 0
2016-08-12 01:22:11,661 - masterchess.playchess - INFO - Pieces of pawns: 0
2016-08-12 01:22:11,661 - masterchess.playchess - INFO - Pieces of queens: 0
2016-08-12 01:22:11,662 - masterchess.playchess - INFO - Pieces of rooks: 2
Number of possibilities: 8
Game 1:
rook None None None
None kinight None kinight
None None rook None
None kinight None kinight
Game 2:
None kinight None kinight
rook None None None
None kinight None kinight
None None rook None
Game 3:
None rook None None
kinight None kinight None
None None None rook
kinight None kinight None
Game 4:
kinight None kinight None
None rook None None
kinight None kinight None
None None None rook
Game 5:
None None None rook
kinight None kinight None
None rook None None
kinight None kinight None
Game 6:
None None rook None
None kinight None kinight
rook None None None
None kinight None kinight
Game 7:
kinight None kinight None
None None None rook
kinight None kinight None
None rook None None
Game 8:
None kinight None kinight
None None rook None
None kinight None kinight
rook None None None
运行示例,显示威胁位置
(chessmaster)MacBook-Pro:chess_master fabiobatalha$ playchess -s 4 -i 4 -r 2
2016-08-12 01:10:03,481 - masterchess.playchess - INFO - Playing Chess
2016-08-12 01:10:03,481 - masterchess.playchess - INFO - Board size: 4
2016-08-12 01:10:03,481 - masterchess.playchess - INFO - Pieces of bishops: 0
2016-08-12 01:10:03,481 - masterchess.playchess - INFO - Pieces of kinights: 4
2016-08-12 01:10:03,481 - masterchess.playchess - INFO - Pieces of kings: 0
2016-08-12 01:10:03,481 - masterchess.playchess - INFO - Pieces of pawns: 0
2016-08-12 01:10:03,482 - masterchess.playchess - INFO - Pieces of queens: 0
2016-08-12 01:10:03,482 - masterchess.playchess - INFO - Pieces of rooks: 2
Number of possibilities: 8
Game 1:
kinight T kinight T
T T T rook
kinight T kinight T
T rook T T
Game 2:
T kinight T kinight
T T rook T
T kinight T kinight
rook T T T
Game 3:
kinight T kinight T
T rook T T
kinight T kinight T
T T T rook
Game 4:
rook T T T
T kinight T kinight
T T rook T
T kinight T kinight
Game 5:
T T T rook
kinight T kinight T
T rook T T
kinight T kinight T
Game 6:
T kinight T kinight
rook T T T
T kinight T kinight
T T rook T
Game 7:
T T rook T
T kinight T kinight
rook T T T
T kinight T kinight
Game 8:
T rook T T
kinight T kinight T
T T T rook
kinight T kinight T