20150131
题意:
4*4棋盘,每次修改选定点及其上下左右四方向的棋子,黑面和白面的切换.
目的是全部棋子为黑面或白面.
输入:
4*4棋盘,b-白面,w-黑面.
输出:
所需步数,若不可行,则输出'Impossible'.
代码:
#include <iostream>
using namespace std;
bool chess[6][6]; // 棋盘,默认全部为false-白面.
int counts = 99; // 理论上,走的最大的步数为16.只要成功,必然小于17.
//判断是否全部为白面或黑面
bool judge(){
bool flag = false;
for(int i = 1; i < 5; i++){
for(int j = 1; j < 5; j++){
if(!chess[i][j]){
flag = true;
}
}
}
if(!flag)
return true;
for(int i = 1; i < 5; i++){
for(int j = 1; j < 5; j++){
if(chess[i][j]){
flag = false;
}
}