C语言 五子棋(初学者版)
C语言 五子棋(初学者版)
#include
#include
#include
#include
#define set 16//定义棋局大小,必须为偶数
///声明函数
void jie_mian();
void chu_shi_hua();
void xian_shi();
int hua_pan(int ,int );
void ti_shi();
int zhuan(char );
void R_luo_zi();
void D_luo_zi();
void R_D();
void xia_qi();
int pan_shu_ying();
void xian_shi_shu_ying();
void qing_quan();
int yan_quan();
int ji_quan_(int flag_f_,int f_);
void ji_quan();
void rand_luo_zi(int *x,int *y);
int pan_quan_4(int f_);
int pan_quan_3_5(int f_);
int pan_quan_2_5(int f_);
int pan_quan_3(int f_);
int pan_quan_2(int f_);
int pan_quan_1(int f_);
///声明函数
//定义全局变量
int qi_pan[set+1][set+1]={0};//棋盘数组
int quan[set][set]={};//记录各位子的权
char flag;//判断是否退出游戏标志,T或t为退出标志,q或Q代表退回上一级
int flag_1;//判断该处是否已经落子标志,0代表无,1代表有,-1代表输入坐标错误
int flag_2;//0表示人人对战,1表示人机对战
int flag_XZ;//记录该谁落子,0代表黑,1代表白
int flag_SY;//输赢判断标志。0表示未分胜败,1表示赢,然后通过落子判断谁赢
//定义全局变量
int main()
{
//int x,y;//落子的位置
system("color F0");
//标志初始化
flag=' ';
flag_1=0;
flag_2=0;
flag_XZ=0;
flag_SY=0;
while(flag!='t'&&flag!='T')
{
system("cls");//清屏
chu_shi_hua();//初始化棋盘
jie_mian();//进入界面
fflush(stdin);
scanf("%c",&flag);
while(flag!='t'&&flag!='T')
{
if(flag=='q'||flag=='Q')
{
flag_XZ=0;//重置落子的顺序
flag_SY=0;//重置输赢状态
break;
}
system("cls");//清屏
xian_shi();//显示棋盘状态
ti_shi();//显示提示信息
xia_qi();//黑和白依次落子
xian_shi_shu_ying();
}
}
return 0;
}
void jie_mian()//进入界面
{
printf("******************************************************************\n\n\n\n\n");
printf("\t\t\t欢迎使用\n\n\t\tmake by song-dingkai@\n\n\n\n\n\n");
printf("******************************************************************\n");
printf("\t\t\t0 表示人人对战\n\t\t\t1 表示人机对战\n");
printf("\t\t\tT 退出游戏\t\n");
}
void chu_shi_hua()//初始化棋盘
{
for(int i=1;i
{
for(int j=1;j
{
qi_pan[i][j]='+';
}
if(i<10)
{
qi_p