黑白棋(基础模块)
时限:1000ms 内存限制:10000K 总时限:3000ms
描述:
相信大家对于黑白棋已经了如指掌了,下面我们来编写一些更有挑战性的模块。对于棋盘的某种状态来说,可能有很多处都可以下子,也可能只有一处,甚至无处下子。我们需要你编写程序计算对于将要下某种颜色当前棋盘状态共有多少处可以落子。
输入:
首先读入的是当前棋盘的状态,共8行,每行8个数字,1代表白棋,2代表黑棋,0代表为空格(未下子)。第9行有1个数字N代表将要下子的颜色。
输出:
出一个整数,代表共有多少处可以落子,如果无法落子则输出0.
输入样例:
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 2 0 0 0 0 0 0 2 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
输出样例:
4
#include<iostream>
using namespace std;
void init(); int shang(int m,int n); int xia(int m,int n); int zuo(int m,int n); int you(int m,int n); int zuoshang(int m,int n); int youshang(int m,int n); int zuoxia(int m,int n); int youxia(int m,int n);
int qipan[8][8]; int color;
int main() { int i,j,counter;
init();
counter=0;
for(i=0;i<8;i++) { for(j=0;j<8;j++) { if(qipan[i][j]==color) { if(shang(i,j)) { counter++; } if(xia(i,j)) { counter++; } if(zuo(i,j)) { counter++;