#include "stdafx.h"
#include
using namespace std;
void check(int i,int j); // 检查每条直线上的各方棋子的数量
int other(int b,int c);
void check_win(); // 检查是否胜利
void begin(char ch);
void computer(); // 电脑下棋
void user(); //用户下棋
int a[4][4],deep;
int line[3][3][2]; //全局变量,用来存放每条直线上的各方棋子数!
//第一维下标表示是行列还是对角线,第二维下标表示第几条直
线
//第三维下标表示各方的棋子数!
void main()
{
char ch;
cout<
输入 u 则您先手 ,输入 c 则电脑先手! (小写)\n"<
do
{
cin>>ch;
if(ch!='u'&&ch!='c') cout<
}while(ch!='u'&&ch!='c'); // 非法处理
if(ch=='u') cout<
else if(ch=='c') cout<
begin(ch);
}
void begin(char ch)
{
int i,j,k;
a[1][1]=1;
cout<
\n"<
for(i=1;i<4;i++)
for(j=1;j<4;j++)
{
if(j==1)
if(i==1);
else a[i][j]=a[i-1][3]+1;
else a[i][j]=a[i][j-1]+1;
} // 初始化棋盘
for(i=0;i<3;i++)
for(j=0;j<3;j++)
for(k=0;k<3;k++)
line[i][j][k]=0;
deep=0;
if(ch=='u') user();
else computer();
}
void computer()
{
int i,j,flag=0,m; //flag 判断是否落子
for(i=0;i<3;i++)
for(j=0;j<3;j++)
{
if (line[i][j][0]==2&&line[i][j][1]==0&&flag==0)
{
m=other(i,j);
if(m%3==0) {a[m/3][3]=40;check(m/3,3);}
else {a[m/3+1][m%3]=40; check(m/3+1,m%3);} //40 是 #的 ASCII
码减 48