资源简介
能进行简单的人机对战,有简单的图形界面,添加了图片

代码片段和文件信息
#include
#include
#include
#include
#include
typedef struct repeal //悔棋结构体
{
int x; //记录棋子坐标
int y;
int type; //什么颜色的棋子
struct repeal *next;
}repeal;
//#pragma warning(disable:4996)
void five_menu(); //显示菜单界面
void five_qp(); //打印棋盘
void five_playgame();
void five_AI(int mychess); //电脑思考
int five_score(); //评分函数
void five_mark(int xint yint countint angleint mychess); //判断棋型函数
int five_win(); //判断胜负
void add_repeal(int xint yint typerepeal *L);
repeal* init_repeal(); //初始化悔棋链表
void five_repeal(); //悔棋实现函数
int a[23][23]={0}; //15*15的棋盘(利于后面遍历棋盘(4+15+4)*(4+15+4)) [-1012分别代表空,不存在,玩家,电脑]
int pe[15][15]cp[15][15]; //玩家和电脑计分数组
int maxscorepemaxscorecp;
int win=0; //判断是否胜利(1为玩家胜利2为人机胜利)
int play=2;// 默认电脑先手
int win5=0alive4=0die4=0die3=0lowdie4=0alive3=0alive2=0die2=0tiao3=0lowalive2=0other=0; //活五,活四,死四,死三,低级死四,活三,活二,跳三,低级活二,其他
int count0=1count90=1count45=1count135=1; //(统计不同角度四条线连子数)
int stepcp=0steppe=0; //统计步数
struct repeal *RE=init_repeal();
void main()
{
initgraph(600600);
setbkcolor(BROWN);
five_menu(); //显示菜单界面
}
repeal* init_repeal() //初始化悔棋链表
{
repeal *L;
L=(repeal*)malloc(sizeof(repeal));
if(L==NULL)
exit(0);
L->next=NULL;
return L;
}
void add_repeal(int xint yint typerepeal *L) //添加节点(采用带头结点的头插入)
{
struct repeal *p;
p=(repeal*)malloc(sizeof(repeal));
p->x=x;
p->y=y;
p->type=type;
p->next=L->next;
L->next=p;
}
void five_repeal() //悔棋实现函数
{
repeal *L;
L=(repeal*)malloc(sizeof(repeal));
if(L==NULL)
exit(0);
L=RE->next;
if(L!=NULL&&L->next!=NULL)
{
for(int i=0;i<2;i++)
{
setfillcolor(BROWN); //背景填充
solidcircle(L->xL->y10); //覆盖
a[(L->x-50)/30+4][(L->y-50)/30+4]=-1;
setlinecolor(YELLOW);
line(L->x-10L->yL->x+10L->y);
line(L->xL->y-10L->xL->y+10);
L=L->next; //指针后移
Sleep(500);
}
stepcp--;
steppe--;
RE->next=L;
}
}
void five_menu() //显示菜单界面
{
IMAGE img; //定义图像变量
loadimage(&img“1.jpg“600600);
putimage(00&img);
settextstyle(5020“宋体“);
outtextxy(200400“开始游戏“);
MOUSEMSG m;
while(true)
{
m=GetMouseMsg();
if(m.uMsg==WM_MOUSEMOVE&&m.x>=200&&m.x<=360&&m.y>=400&&m.y<=450)
{
setlinecolor(YELLOW);
rectangle(200400360450);
}
if(m.uMsg==WM_LBUTTONDOWN&&m.x>=200&&m.x<=360&&m.y>=400&&m.y<=450)
{
cleardevice(); //清除视图
Sleep(500);
five_qp(); //棋盘界面函数
break;
}
if(!(m.x>=200&&m.x<=360&&m.y>=400&&m.y<=450)) //当鼠标移开时覆盖掉上一条的黄色边框
{
setlinecolor(BLACK);
rectangle(200400360450);
}
}
}
void five_qp() //打印棋盘
{
setlinecolor(YELLOW);
for (int i = 50; i <= 470; i += 30)
{
line(i 50 i 470);
line(50 i 470 i);
}
settextstyle(1610“宋体“);
outtextxy(50050“电脑步数:“);
outtextxy(500420“玩家步数:“);
outtextxy(520200“新游戏“);
outtext
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 156102 2019-01-24 10:59 五子棋\1.jpg
文件 33707 2019-01-26 21:11 五子棋\五子棋.cpp
相关资源
- 操作系统c语言模拟文件管理系统844
- C语言开发实战宝典
- C++中头文件与源文件的作用详解
- C语言代码高亮html输出工具
- 猜数字游戏 c语言代码
- C语言课程设计
- 数字电位器C语言程序
- CCS FFT c语言算法
- 使用C语言编写的病房管理系统
- 通信过程中的RS编译码程序(c语言)
- 计算机二级C语言上机填空,改错,编
- 用回溯法解决八皇后问题C语言实现
- 简易教务管理系统c语言开发文档
- 操作系统课设 读写者问题 c语言实现
- 小波变换算法 c语言版
- C流程图生成器,用C语言代码 生成C语
- 3des加密算法C语言实现
- 简单的C语言点对点聊天程序
- 单片机c语言源程序(51定时器 八个按
- 个人日常财务管理系统(C语言)
- c语言电子商务系统
- 小甲鱼C语言课件 源代码
- 将图片转换为C语言数组的程序
- C语言实现的一个内存泄漏检测程序
- DES加密算法C语言实现
- LINUX下命令行界面的C语言细胞游戏
- 用单片机控制蜂鸣器播放旋律程序(
- 学校超市选址问题(数据结构C语言版
- 电子时钟 有C语言程序,PROTEUS仿真图
- 尚观培训linux许巍老师关于c语言的课
评论
共有 条评论