求c语言的挖地雷游戏代码
答案:6 悬赏:10
解决时间 2021-02-04 13:23
- 提问者网友:浪子生来ˇ性放荡²↘
- 2021-02-04 07:40
: 要有充分的注释
4:要用socket实现2人的网络对战
3:简单的在dos环境下运行的就行
2:注意是c 语言的
没素质;graphics.h>.
还有就是不知道的可以不回答
再说明一点;的都不可以啊.h>,
所以头文件带有代码要在visual c++ 6,效果用不着那么好看
只是想通过这个学习一下socket编程和挖地雷游戏的一些算法
不要像1楼的那位在那说风凉话.0版本上能实行的
最佳答案
- 二级知识专家网友:伤口狠精致
- 2021-02-04 08:15
我最近正在研究socket编程方面的问题
如果你不着急的话,我可以帮你编
可以的话就给我回个信息
全部回答
- 1楼网友:一身浪痞味
- 2021-02-04 13:00
...你拿C语言作挖雷...如果C语言有大脑他就骂你了
- 2楼网友:无字情书
- 2021-02-04 12:18
#include
#include
#include
#include
#include
#define LEFT 1
#define RIGHT 2
struct bomb
{int x;
int y;
int bomb;
int mark;
int lclick;
}bomb[18][18];
void instruction(int *bnum);
void desk(int bnum);
void getmouse(void);
void ReadMouse(int *click,int *x,int *y);
void play(void);
void bombfind(void);
void search(int getx,int gety,int click,int *found);
void leftclick(int x,int y);
void ShowMouse(void);
void ErrMsg(void);
int InitMouse(void);
void str(int num,int *str);
main()
{int gdiver=VGA,gmode=VGAHI;
initgraph(&gdiver,&gmode,"");
paly();
}
void Play(void)
{int getx,gety,click,x,y,found=0,bnum=0,restart=0,stop=0,dt;
char st1[4];
time_t bt=time(NULL);
instruction(&bnum);
desk(bnum);
while((!restart)&&(!stop)&&(found!=bnum))
{dt=(int)difftime(time(NULL),bt);
str(dt,st1);
outtextxy(0,60,st1);
ReadMouse(&click,&getx,&gety);
if((getx>=543)&&(getx<=623)&&(gety>=207)&&(gety<=255))
play();
if((getx>=543)&&(getx<=623)&&(gety>=351)&&(gety<=399))
{closegraph();
exit(1);
}
if((getx>=95)&&(getx<=527)&&(gety>=16)&&(gety<=447))
search(getx,gety,click,&found);
}
if(found==bnum)
{outtextxy(16,304,"YOU WIN!");
delay(10000);
play();
}
}
void instruction(int *bnum)
{int getx,gety,click;
getmouse();
setbkcolor(12);
setcolor(0);
outtextxy(240,64,"This is a game of ");
outtextxy(240,112,"Searching bomb 1.1");
outtextxy(240,160,"Expored by XuBin");
outtextxy(240,208,"2004.6");
outtextxy(240,256,"Please choose th number of bombs:");
outtextxy(240,304,"30");
outtextxy(240,352,"60");
outtextxy(240,400,"160");
setfillstyle(1,11);
bar(336,304,432,336);
bar(336,352,432,385);
bar(336,400,432,432);
while(!(*bnum))
{ReadeMouse(&click,&getx,&gety);
delay(300);
if(getx>=336&&getx<=432&&gety>=304&&gety<=336&&(click!=0))
*bnum=30;
if(getx>=336&&getx<=432&&gety>=352&&gety<=385&&(click!=0))
*bnum=60;
if(getx>=336&&getx<=432&&gety>=400&&gety<=432&&(click!=0))
*bnum=160;
}
cleardevice();
}
void desk(int bnum)
{int x,y,xx=71,yy=-8,g;
char st2[4];
setbkcolor(2);
setcolor(14);
setfillstyle(11,1);
setlinestyle(0,0,1);
for(y=0;y<18;y++)
{yy+=24;
if(y!=17) line(79,yy+24,543,yy+24);
for(x=0;x<18;x++)
{bomb[x][y].x=(xx+=24);
bomb[x][y].y=yy;
bomb[x][y].bomb=0;
bomb[x][y].mark=0;
bomb[x][y].lclick=0;
if((y==17)&&(x!=17))
line(xx+24,3,xx+24,463);
bar(bomb[x][y].x+1,bomb[x][y].y+1,bomb[x][y].x+23,bomb[x][y].y+23);
}
}
retangle(95,16,527,447);
setlinestyle(0,0,3)
retangle(79,3,543,463);
randomize();
for(g=0;ga)&&(gety<(a+24)))
break;
}
for(a=71;a<527;a+=24)
{x+=1;
if((getx>a)&&(getx<(a+24)))
break;
}
if(click==RIGHT&&bomb[x][y].lclick==0)
{if(bomb[x][y].mark==1)
{bomb[x][y].mark=0;
if(bomb[x][y].bomb==0)
(*found)+=1;
else
(*found)-=1;
setfillstyle(11,1);
bar(bomb[x][y].x+1,bomb[x][y].y+1,bomb[x][y].x+23,bomb[x][y].y+23);
}
else
{bomb[x][y].mark=1;
if(bomb[x][y].bomb==0)
(*found)-=1;
esle
(*found)+=1;
setfillstyle(1,RED);
bar(bomb[x][y].x+1,bomb[x][y].y+1,bomb[x][y].x+9,bomb[x][y].y+9);
}
}
if(click==LEFT&&bomb[x][y].click==0&&bomb[x][y].mark==0)
{if(bomb[x][y].bomb==1)
{outtextxy(16,304,"FALL");
bombfind();
}
leftclick(x,y);
}
}
void leftclick(int x,int y)
{int count=0,a,b,c,d;
char st3[4];
if(x>=18&&y>=18&&x<0&&y<0&&bomb[x][y].click==1)
return;
bomb[x][y].lclick=1;
a=0>(x-1)? 0:(x-1);
b=17>(x+1)? (x+1):17;
c=0>(y-1)? 0:(y-1);
d=17>(y+1)? (y+1):17;
for(;a<=b;a++)
for(;c<=d;c++)
if(bomb[x][y].bomb==1)
count++;
if(count!=1)
{str(count,st3);
outtextxy(bomb[x][y].x,bomb[x][y].y,st3);
}
leftclick(x+1,y);
leftclick(x-1,y);
leftclick(x,y+1);
leftclick(x,y-1);
}
void str(int num,int *st)
{int x,y,z;
x=num%100;
y=(num-100*x)%10;
z=num-100*x-10*y;
st[0]=x+48;
st[1]=y+48;
st[2]=z+48;
st[3]='\0';
}
- 3楼网友:如果这是命
- 2021-02-04 11:29
我告诉你,vc编出来的扫雷肯定不好看的~你怎么想?真的要人编吗?编个10*10的可以不?而且没有联机对战功能?
- 4楼网友:开心就好
- 2021-02-04 10:25
VC可以编得很好看的,只是麻烦一点
DOS下面的界面都可以做得很漂亮的,不要说Windows了
好像以前的《英雄无敌》,《魔兽争霸2》都是DOS下面的游戏
- 5楼网友:猎杀温柔
- 2021-02-04 09:27
要什么语言的版本?我认为难点就是随机地图的产生,其他都是细节问题。
我要举报
大家都在看
推荐资讯