版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、#include <stdio.h>#include <bios.h>#include <ctype.h>#include <conio.h>#include <dos.h>#define CROSSRU 0xbf /*右上角点*/#define CROSSLU 0xda /*左上角点*/#define CROSSLD 0xc0 /*左下角点*/#define CROSSRD 0xd9 /*右下角点*/#define CROSSL 0xc3 /*左边*/#define CROSSR 0xb4 /*右边*/#define CROSSU
2、0xc2 /*上边*/#define CROSSD 0xc1 /*下边*/#define CROSS 0xc5 /*十字交叉点*/*定义棋盘左上角点在屏幕上的位置*/#define MAPXOFT 5#define MAPYOFT 2/*定义1号玩家的操作键键码*/#define PLAY1UP 0x1157/*上移-'W'*/#define PLAY1DOWN 0x1f53/*下移-'S'*/#define PLAY1LEFT 0x1e41/*左移-'A'*/#define PLAY1RIGHT 0x2044/*右移-'D'*/
3、#define PLAY1DO 0x3920/*落子-空格键*/*定义2号玩家的操作键键码*/#define PLAY2UP 0x4800/*上移-方向键up*/#define PLAY2DOWN 0x5000/*下移-方向键down*/#define PLAY2LEFT 0x4b00/*左移-方向键left*/#define PLAY2RIGHT 0x4d00/*右移-方向键right*/#define PLAY2DO 0x1c0d/*落子-回车键Enter*/*若想在游戏中途退出, 可按 Esc 键*/#define ESCAPE 0x011b/*定义棋盘上交叉点的状态, 即该点有无棋子
4、*/*若有棋子, 还应能指出是哪个玩家的棋子 */#define CHESSNULL 0 /*没有棋子*/#define CHESS1 'O'/*一号玩家的棋子*/#define CHESS2 'X'/*二号玩家的棋子*/*定义按键类别*/#define KEYEX99v 0/*退出键*/#define KEYFALLCHESS 1/*落子键*/#define KEYMOVECURSOR 2/*光标移动键*/#define KEYINVALID 3/*无效键*/*定义符号常量: 真, 假 - 真为1, 假为0 */#define TRUE 1#define FA
5、LSE 0/*/* 定义数据结构 */*棋盘交叉点坐标的数据结构*/struct pointint x,y;或者下面这个:#include <graphics.h>#include <stdlib.h>#include <stdio.h>#include <conio.h>#define N 15#define B 7#define STOP -10000#define OK 1#define NO 0#define UP 328#define DOWN 336#define LEFT 331#define RIGHT 333int aN+1N+
6、1;int zx,zy;int write=1,biaoji=0;struct znlong sum;int y;int x;wN+1N+1,max,max1;void cbar(int i,int x,int y,int r);void map(int a);int getkey();int key();void zuobiao(int x,int y,int i);int tu(int a,int write);int wtu(int a,int write);int zhineng(int a);int zh5(int y,int x,int a);long zzh5(int b,int
7、 i);main()int i,j;int gdriver=DETECT;int gmode;initgraph(&gdriver,&gmode,"");zx=(N+1)/2;zy=(N+1)/2;for(i=1;i<=N;i+)for(j=1;j<=N;j+)aij=0;map(a);i=1;while(i)int k,n;k=wtu(a,write);if(k=STOP) goto end;map(a);n=zhineng(a);if(n=STOP) goto end;map(a);end:;int zhineng(int aN+1N+1)i
8、nt i,j;int k;max.sum=-1;for(i=0;i<=N;i+)for(j=0;j<+N;j+)wij.sum=0;wij.x=i;wij.y=j;for(i=1;i<=N-4;i+)for(j=1;j<=N-4;j+)k=zh5(i,j,a);if(k=STOP) return (STOP);for(i=1;i<=N;i+)for(j=1;j<=N;j+)if(max.sum<wij.sum)max.sum=wij.sum;max.y=i;max.x=j;else if(max.sum=wij.sum)if(max.y-zy)*(ma
9、x.y-zy)+(max.x-zx)*(max.x-zx)>(i-zy)*(i-zy)+(j-zx)*(j-zx)max.sum=wij.sum;max.y=i;max.x=j;if(amax.ymax.x=0)amax.ymax.x=-1;zy=max.y;zx=max.x;int zh5(int y,int x,int aN+1N+1)int i,j;int b66;long c13;long d66;long temp;for(i=y;i<=y+4;i+)for(j=x;j<=x+4;j+)bi+1-yj+1-x=aij;c1=b11+b12+b13+b14+b15;c
10、2=b21+b22+b23+b24+b25;c3=b31+b32+b33+b34+b35;c4=b41+b42+b43+b44+b45;c5=b51+b52+b53+b54+b55;c6=b11+b21+b31+b41+b51;c7=b12+b22+b32+b42+b52;c8=b13+b23+b33+b43+b53;c9=b14+b24+b34+b44+b54;c10=b15+b25+b35+b45+b55;c11=b11+b22+b33+b44+b55;c12=b15+b24+b33+b42+b51;for(i=1;i<=12;i+)switch(ci)case 5:biaoji=1
11、;return(STOP);case -5:biaoji=-1;return(STOP);case -4:ci=100000;break;case 4:ci=100000;break;case -3:ci=150;break;case 3:ci=150;break;case -2:ci=120;break;case 2:ci=100;break;case -1:ci=1;break;case 1:ci=1;break;default: ci=0;for(i=1;i<=12;i+)if(ci=150)ci+=zzh5(b,i);for(i=1;i<=5;i+)for(j=1;j<
12、;=5;j+)dij=0;for(i=1;i<=5;i+)for(j=1;j<=5;j+)if(i=j) dij+=c11;if(i+j)=6) dij+=c12;dij+=ci+cj+5;for(i=1;i<=5;i+)for(j=1;j<=5;j+)if(bij!=0)dij=-2;max1.sum=-1;max1.y=0;max1.x=0;for(i=1;i<=5;i+)for(j=1;j<=5;j+)if(max1.sum<dij)max1.sum=dij;max1.y=i;max1.x=j;wi+y-1j+x-1.sum+=max1.sum;
13、else if(max1.sum=dij)if(i+y-1-zy)*(i+y-1-zy)+(j+x-1-zx)*(j+x-1-zx)>(max1.y+y-1-zy)*(max1.y+y-1-zy)+(max1.x+x-1-zx)*(max1.x+x-1-zx)max1.sum=dij;max1.y=i;max1.x=j;long zzh5(int b66,int n)int i,j,k,l,m;switch(n)case 1:i=b11;j=b12;k=b13;l=b14;m=b15;break;case 2:i=b21;j=b22;k=b23;l=b24;m=b25;break;cas
14、e 3:i=b31;j=b32;k=b33;l=b34;m=b35;break;case 4:i=b41;j=b42;k=b43;l=b44;m=b45;break;case 5:i=b51;j=b52;k=b53;l=b54;m=b55;break;case 6:i=b11;j=b21;k=b31;l=b41;m=b51;break;case 7:i=b12;j=b22;k=b32;l=b42;m=b52;break;case 8:i=b13;j=b23;k=b33;l=b43;m=b53;break;case 9:i=b14;j=b24;k=b34;l=b44;m=b54;break;ca
15、se 10:i=b15;j=b25;k=b35;l=b45;m=b55;break;case 11:i=b11;j=b22;k=b33;l=b44;m=b55;break;case 12:i=b15;j=b24;k=b33;l=b42;m=b51;break;if(i=0&&j=1&&k=1&&l=1&&m=0)return (900);if(i=0&&j=-1&&k=-1&&l=-1&&m=0)return(1000);if(i=0&&j=0&
16、;&k=1&&l=1&&m=1)|(i=1&&j=1&&k=1&&l=0&&m=0)return(20);if(i=0&&j=0&&k=-1&&l=-1&&m=-1)|(i=-1&&j=-1&&k=-1&&l=0&&m=0)return(20);if(i=-1&&j=1&&k=1&&l=1&&m=1)|
17、(i=1&&j=-1&&k=1&&l=1&&m=1)|(i=1&&j=1&&k=-1&&l=1&&m=1)|(i=1&&j=1&&k=1&&l=-1&&m=1)|(i=1&&j=1&&k=1&&l=1&&m=-1)return(-60);if(i=1&&j=-1&&k=-1&&l=-1&
18、&m=-1)|(i=-1&&j=1&&k=-1&&l=-1&&m=-1)|(i=-1&&j=1&&k=-1&&l=-1&&m=-1)|(i=-1&&j=-1&&k=-1&&l=1&&m=-1)|(i=-1&&j=-1&&k=-1&&l=-1&&m=1)return(-60);int wtu(int aN+1N+1,int write)
19、int i=1;map(a);zuobiao(zx,zy,1);while(i)int k;k=tu(a,write);if(k=OK) i=0;if(k=STOP) return (STOP);int getkey()int key,lo,hi;key=bioskey(0);lo=key&0x00ff;hi=(key&0xff00)>>8;return(lo=0) ? hi+256:lo);int key()int k;k=getkey();switch(k)case 27: return (STOP);case 13:case ' ': retu
20、rn (OK);case 328: return (UP);case 336: return (DOWN);case 331: return (LEFT);case 333: return (RIGHT);default: return (NO);void zuobiao(int x,int y,int i)int r;if(i!=0)setcolor(GREEN);for(r=1;r<=5;r+)circle(75+25*x,25+25*y,r);elseif(azyzx=1)setcolor(8);for(r=1;r<=5;r+)circle(75+25*x,25+25*y,r
21、);else if(azyzx=-1)setcolor(WHITE);for(r=1;r<=5;r+)circle(75+25*x,25+25*y,r);elsesetcolor(B);for(r=1;r<=5;r+)circle(75+25*x,25+25*y,r);setcolor(RED); line(75+25*zx-5,25+25*zy,75+25*x+5,25+25*zy);line(75+25*zx,25+25*zy-5,75+25*zx,25+25*zy+5);int tu(int aN+1N+1,int write)int k;re:k=key();if(k=OK)if(azyzx=0)azyzx=write;elsegoto re;if(k=STOP) return(STOP);if(k=NO) goto re;i
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度年福建省高校教师资格证之高等教育心理学通关题库(附带答案)
- 2024年度山西省高校教师资格证之高等教育法规题库练习试卷A卷附答案
- 2024年度年福建省高校教师资格证之高等教育学能力测试试卷B卷附答案
- 2024年企业金融项目投资申请报告代可行性研究报告
- 2024年防雾涂料项目投资申请报告代可行性研究报告
- 山东省临沂一中2024-2025学年高三11月测试语文试题含答案
- 第六章 社区营养管理和营养干预课件
- 五年级数学(小数除法)计算题专项练习及答案
- 2024年期房屋建筑施工协议范例大全
- 2024电力供应与消费合规协议样式
- 管桁架施工方案
- 全国高考物理高考题说题比赛一等奖课件物理说题李焕景
- 华为MA5800配置及调试手册
- 汽车坡道玻璃雨棚施工方案
- 二轮复习微专题湖泊专题
- 2024年德阳发展控股集团有限公司招聘笔试参考题库附带答案详解
- 餐前检查表(标准模版)
- 重大风险管控方案及措施客运站
- 陕西方言的文化价值与保护策略
- (2024年)剪映入门教程课件
- 2023年12月教师数字素养测评试题及参考答案
评论
0/150
提交评论