游戏规则:
在一个8x8的棋盘有两个玩家,他们轮流放入分别放入白色和黑色的棋子。
当一个玩家在空棋子的位置放入一个棋子,我们检查放入棋子的8个方向 上 下 左 右 左上 左下 右上 右下,如果这8个方向上有自己这方的棋子夹的全是对方的棋子,则对方的棋子将被吃掉,变成我方的棋子。
当旗盘中不能放入棋子的时候游戏结束。如下图,黑方先走,然后是白方走
有用户输入8x8旗盘的格局和哪一方先走,请编写一个程序输出哪一方最后能够赢得游戏,或是平局。
输入:
有一个8x8的旗盘(‘b’代表黑色的棋子,‘w’代表白色的棋子,’e’代表空棋子),之后输入谁先走。当输入”endofinpur”(没有了格局)时结束游戏;
在每一种格局里面,最多只有10个空棋子。
输出:
每一种格局都用一行输出赢的一方(黑方或是白方)或是平局。确定每一行都没有空棋子。
例如输入:
wwwwwwww
wwwwwwww
wwwwwwww
wwwwwwww
wwwwwwww
wwwwwwww
wwwwwwww
wwwwwwww
black
wwwwwwww
wwwwwwww
wwwwwwww
wwwwwwww
bbbbbbbb
bbbbbbbb
bbbbbbbb
bbbbbbbb
white
endofinput
输出:
White
Draw
源代码:
#include"stdio.h"
#include"string.h"
int kong[10][2], kong_num = 0, //kong[][]存储旗盘中所有空棋子的位置,kong_num存储空棋子的数目
yidong[8][2]={
{-1, -1},{-1, 0},{-1, 1},{0, 1},{1, 1},{1, 0},{1, -1},{0, -1}}; //yidong[][]存储移动的8个方向
void panduan(char qi[8][8]) //通过检查白棋个数判断黑白棋