资源简介

人机对战,可选择先手后手。注释详细,简单易懂。代码有本人QQ号,疑惑的同学可以和我一起学习,交流。分值不高,绝对超值。有此作业的同学幸福了...

资源截图

代码片段和文件信息

#include 

int s;                   //人棋子
int w;                   //电脑棋子
int n = 9;               //存放棋盘空位置数量

void Intro()      //游戏简介
{
printf(“\t\t\t\t\t程序员:刘玉涛\tQQ:932129499\n“);
printf(“\n【游戏规则:由最先在任意一条直线上成功连接成三个标记的一方获胜】\n\n“);
printf(“棋盘:\n“);
printf(“ 1 | 2 | 3\n“);
printf(“----------\n“);
printf(“ 4 | 5 | 6\n“);
printf(“----------\n“);
printf(“ 7 | 8 | 9\n“);
}

int Judge(int a[])                  //判断是否胜利
{
     if(a[1]!=0 && a[1]==a[2] && a[2]==a[3]) return 1;
else if(a[4]!=0 && a[4]==a[5] && a[5]==a[6]) return 1;
else if(a[7]!=0 && a[7]==a[8] && a[8]==a[9]) return 1;
else if(a[1]!=0 && a[1]==a[4] && a[4]==a[7]) return 1;
else if(a[2]!=0 && a[2]==a[5] && a[5]==a[8]) return 1;
else if(a[3]!=0 && a[3]==a[6] && a[6]==a[9]) return 1;
else if(a[1]!=0 && a[1]==a[5] && a[5]==a[9]) return 1;
else if(a[3]!=0 && a[3]==a[5] && a[5]==a[7]) return 1;
return 0;
}

void Checker(int a[]int x)           //显示棋盘
{
int i;
char temp[10]={0};

for (i=1;i<10;i++)          //棋子转换
{
 if (a[i]>0)    temp[i]=88;
else if (a[i]<0) temp[i]=79;
}

printf(“\n %c | %c | %c\n“temp[1]temp[2]temp[3]);
printf(“-----------\n“);
printf(“ %c | %c | %c\n“temp[4]temp[5]temp[6]);
printf(“-----------\n“);
printf(“ %c | %c | %c\n“temp[7]temp[8]temp[9]);
n--;                //剩余空位置个数

if(x==2)
{
printf(“你赢了\n“);
getchar();
}

else if(x==3)
{
printf(“你输了\n“);
getchar();
}
}

int People(int a[])                   //人走棋
{
int num;
while(1)
{
printf(“\n选择位置放置棋子:“);
scanf(“%d“&num);
getchar();                
if(num>0 && num<10 && a[num]==0)
{
a[num]=s;
if(Judge(a))
{
Checker(a2);
return 1;
}
else
{
n--;
return 0;
}
}
else
printf(“输入有误\n“);
}
}
int Max(int temp[])       //比较胜率大小
{
int imax=1;
for (i=2;i<10;i++)
{
if(temp[max] max=i;
}
return max;

}

int Computer(int a[])            //电脑走棋
{
int i;
int temp[10]={0};    //胜率计数器
if(n<=6)                //输赢情况有可能发生了
{
for(i=1;i<10;i++)           //电脑能赢,就赢
{
if(a[i]==0)
{
a[i]=w;
if(Judge(a))
{
Checker(a3);
return 1;           //1标示分出胜负
}
else
a[i]=0;
}

评论

共有 条评论