永发信息网

编了一个五子棋程序 用win-tc运行 一闪而过 求解 让这个程序正常运行

答案:4  悬赏:50  手机版
解决时间 2021-05-04 00:13

#include"graphics.h"
#include <conio.h>
#include "dos.h"
#include "conio.h"
#include "stdio.h"
#define LEFT 0x4b00
#define RIGHT 0x4d00
#define UP 0x4800
#define Esc 0x11b
#define DOWN 0x5000
#define ENTER 0x1c0d
int a[20][20]={0},key;
void *rar;
void DrawQp();
void playtoplay() ;
void setplaycolor(int t);
int Qpchange(int x,int y);
int arrow();
int zi(int x,int y);
void playwin(int t);
void setplaycolor(int t);
int zi(int x,int y);
void main()
{
int gd=DETECT,gr;
registerbgidriver(EGAVGA_driver);
initgraph(&gd,&gr,"c:\\tc");
DrawQp();
playtoplay();
getch();
closegraph();
}

void DrawQp()
{
int i,j;
for(i=100;i<=400;i+=15)
{
line(100,i,400,i);
line(i,100,i,400);
}
setcolor(0);
setfillstyle(SOLID_FILL,15);
setfillstyle(SOLID_FILL,8);
}

void playtoplay()
{

int x,y,i,j,t=1;
x=100;y=100;
gotoxy(100,100) ;
arrow();

do
{
setplaycolor(t);


key=bioskey(0);
if(key==Esc)
break;
else
if(key==ENTER)
{
if(zi(x,y)==0)
{ i=(x-100)/15;j=(y-100)/15;
fillellipse(x,y,5,5);a[i][j]=t;
if(Qpchange(x,y))
{playwin(t);break;}
}
else continue;
if(t==1) {t=2;}
if(t==2) {t=1;}
continue;

}
else
if(key==LEFT)
{if(x>100) {gotoxy(x-15,y);arrow();putimage(x-15,y,rar,XOR_PUT);}
else continue;
}
else
if(key==RIGHT)
{if(x<400) {gotoxy(x+15,y);arrow();putimage(x+15,y,rar,XOR_PUT);}
else continue;
}
else
if(key==UP)
{if(y>100) {gotoxy(x,y-15);arrow();putimage(x,y-15,rar,XOR_PUT);}
else continue;
}
else
if(key==DOWN)
{if(x<400) {gotoxy(x,y+15);arrow();putimage(x,y+15,rar,XOR_PUT);}
else continue;
}


}while(1);


}



void setplaycolor(int t)
{
if(t%2==1)
setfillstyle(SOLID_FILL,15);
else
setfillstyle(SOLID_FILL,8);
}



int Qpchange(int x,int y)
{
int i,j,n,kk,bb;
i=(x-100)/15;
j=(y-100)/15;
kk=0;
bb=0;
if(i>=4)
{ for(n=0;n<=4;n++)
{
if(a[i-n][j]==1) {kk+=1;}
else if(a[i-n][j]==2) {bb+=1;}
}
if(kk==5||bb==5) return 1;
}
if(i<=15)
{ kk=0;bb=0;
for(n=0;n<=4;n++)
{
if(a[i+n][j]==1) { kk+=1;}
else if(a[i-n][j]==2) {bb+=1;}
}
if(kk==5||bb==5) return 1;
}
if(j>=4)
{ kk=0;bb=0;
for(n=0;n<=4;n++)
{
if(a[i][j-n]==1) { kk+=1;}
else if(a[i][j-n]==2) {bb+=1;}
}
if(kk==5||bb==5) return 1;
}
if(j<=15)
{ kk=0;bb=0;
for(n=0;n<=4;n++)
{
if(a[i][j+n]==1) { kk+=1;}
else if(a[i][j+n]==2) {bb+=1;}
}
if(kk==5||bb==5) return 1;
}
if(i>=4&&j>=4)
{ kk=0;bb=0;
for(n=0;n<=4;n++)
{
if(a[i-n][j-n]==1) {kk+=1;}
else if(a[i-n][j-n]==2) {bb+=1;}
}
if(kk==5||bb==4) return 1;
}
if(i<=15&&j<=15)
{ kk=0;bb=0;
for(n=0;n<=4;n++)
{
if(a[i+n][j+n]==1) {kk+=1;}
else if(a[i+n][j+n]==2) {bb+=1;}
}
if(kk==5||bb==4) return 1;
}
if(i>=4&&j<=15)
{ kk=0;bb=0;
for(n=0;n<=4;n++)
{
if(a[i-n][j+n]==1) {kk+=1;}
else if(a[i-n][j+n]==2) {bb+=1;}
}
if(kk==5||bb==4) return 1;
}
if(i<=15&&j>=4)
{ kk=0;bb=0;
for(n=0;n<=4;n++)
{
if(a[i+n][j-n]==1) {kk+=1;}
else if(a[i+n][j-n]==2) {bb+=1;}
}
if(kk==5||bb==4) return 1;
}
return 0;


}


int arrow()
{
int size;
int raw[]={4,4,4,8,6,8,14,16,16,16,8,6,8,4,4,4};
setfillstyle(SOLID_FILL,15);
fillpoly(8,raw);
size=imagesize(4,4,16,16);
rar=malloc(size);
getimage(4,4,16,16,rar);
putimage(4,4,rar,XOR_PUT);
return 0;
}


int zi(int x,int y)
{ int i,j;
i=(x-100)/15;
j=(y-100)/15;
if(a[i][j]==0)
return 0;
else return 1;
}


void playwin(int t)
{
settextstyle(0,0,4);
setcolor(12);
if(t==1)
outtextxy(20,20,"white win!");
else if(t==2)
outtextxy(20,20,"black win!");
else outtextxy(20,20,"ping ju");
}

最佳答案

代码太多了..就不编译了!


你在main()


{


........


getch();


}


试试........

全部回答
getch() 而且要加头文件conio.h

你把getch(); closegraph();

调换下位置试下.

只有在要求有输入的时候才不会一闪而过.

试一试将getch();换做system("pause");
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
谁能帮我想个带“兰”的昵称!最好加点特使符
海陵中学09届初一升初二分班名单
设备管理器Nokia 5800w XpressMusic 感叹!!
月台街地址有知道的么?有点事想过去
给宝宝取名!
1800块能买什么诺基亚手机
怎样使u盘在电脑不能正常开机时当做光盘来安
诺基亚s40系统,下什么软件看小说好?可以下
请问有啥软件专门处理皮肤色泽的问题
冬至节气诗词,关于二十四节气歌的谚语
怎样才能知道谁是你真正的朋友?
DNF广东六区的街霸武器,血玫瑰之刺成品要多
2010快男什么时候来青岛
楚雄三木创艺广告有限责任公司这个地址在什么
东汉的刘璋的儿子们都叫什么?
推荐资讯
漳州富盈皮业有限公司在哪里啊,我有事要去这
南平市工业产品生产许可证审查技术中心这个地
帮忙起一女孩名姓刘
中国的东西为什么比日本贵
怎样改掉自己某些坏习惯?
宝宝一周岁以内必须补钙吗
我是农历一九八七年十月初五出生的,想问一下
梦到和一个不认识的人结婚,而女朋友却在旁边
头晕,嘴巴有苦味,全身乏力,酸痛是为什么?
QQ飞车中大黄蜂与飞火两辆车综合实力相比哪辆
智能手机中病毒了怎么办?
2010快乐男生冠军是谁?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?