扫雷小游戏程序设计

antpc 2010-01-01 07:57:33
急需扫雷小游戏程序设计及设计思路,希望大家能帮帮我!谢谢了……
...全文
1990 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
cheng_jinqian 2011-12-07
  • 打赏
  • 举报
回复
6楼给的扫雷代码在C++环境下无法运行,图形处理的头文件在Windows系统下是<windows.h>
cy330206 2010-04-17
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 antpc 的回复:]
刚接触C不久,有好多地方还都不懂,只能慢慢学习啦!
[/Quote]
楼主刚刚开始就学习的这么难啊,,还是慢慢来吧,基础重要
xinshou2010 2010-04-17
  • 打赏
  • 举报
回复
--------------------Configuration: Cpp10 - Win32 Debug--------------------
Compiling...
Cpp10.cpp
c:\windows\system32\cpp10.cpp(1) : fatal error C1083: Cannot open include file: 'graphics.h': No such file or directory
Error executing cl.exe.

Cpp10.exe - 1 error(s), 0 warning(s)
报错
xinshou2010 2010-04-17
  • 打赏
  • 举报
回复
--------------------Configuration: Cpp10 - Win32 Debug--------------------
Compiling...
Cpp10.cpp
c:\windows\system32\cpp10.cpp(1) : fatal error C1083: Cannot open include file: 'graphics.h': No such file or directory
Error executing cl.exe.

Cpp10.exe - 1 error(s), 0 warning(s)
报错
喜-喜 2010-04-17
  • 打赏
  • 举报
回复
[Quote=引用 19 楼 yuxh81 的回复:]
既然刚刚接触C,那就从简单一点的开始吧

如:贪食蛇,拼图等,比这个简单

等上面搞过来后,再做扫雷,俄罗斯方块就容易了
[/Quote]

顶...刚开始学习,就从基础学起啊...
yuxh81 2010-04-17
  • 打赏
  • 举报
回复
既然刚刚接触C,那就从简单一点的开始吧

如:贪食蛇,拼图等,比这个简单

等上面搞过来后,再做扫雷,俄罗斯方块就容易了
苏小败在路上 2010-04-17
  • 打赏
  • 举报
回复
我也想要啊!!!
yituanmiwu 2010-01-03
  • 打赏
  • 举报
回复
我也想要!!!!!!!!!!
zhangjingl 2010-01-03
  • 打赏
  • 举报
回复
这个很简单的 初学的到最后实践是很多都是学的扫雷的程序
六楼的 缺了很多 运行不出来 打网上下个吧
  • 打赏
  • 举报
回复
浆油!
ImJaden 2010-01-03
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 mhjerry 的回复:]
6楼的好像运行不出来?
[/Quote]
肯定少了些东西。字数受限吧·
艾乐飞 2010-01-02
  • 打赏
  • 举报
回复
这个百度可以有。
xsfor 2010-01-02
  • 打赏
  • 举报
回复
C++ 游戏编程 有扫雷的分析和源码
antpc 2010-01-02
  • 打赏
  • 举报
回复
刚接触C不久,有好多地方还都不懂,只能慢慢学习啦!
shiweifu 2010-01-02
  • 打赏
  • 举报
回复
mark了,哪天闲了写个玩玩
就是个数组加个结构体,然后再判断嘛
和五子棋一个道理
antpc 2010-01-02
  • 打赏
  • 举报
回复
网上有好多源代码,下载了tc的代码,但是在TC2.0里运行不能运行!
谁能帮我找一个源代码呀???
还有就是,贪吃蛇的程序设计思路及源代码?
麻烦大家了!谢谢了哦
jernymy 2010-01-01
  • 打赏
  • 举报
回复
南气子水 2010-01-01
  • 打赏
  • 举报
回复
6楼的好像运行不出来?
z569362161 2010-01-01
  • 打赏
  • 举报
回复
#include <graphics.h>
#include <stdlib.h>
#include <dos.h>
#define LEFTPRESS 0xff01
#define LEFTCLICK 0xff10
#define LEFTDRAG 0xff19
#define MOUSEMOVE 0xff08
int num;/*范围*/
int p;/*统计雷的数组*/
int loop;/*重新来的标志*/
int again=0;/*是否重来的变量*/
int scorenum;/*一开始统计有几个雷*/
char score;/*输出一共有几个地雷*/
int Keystate;
int MouseExist;
int MouseButton;
int MouseX;
int MouseY;
/*鼠标光标形状定义*/
typedef struct
{
unsigned int shape[32];
char hotx;
char hoty;
}SHAPE;

/*箭头型*/
SHAPE ARROW={
{
0x3fff,0x1fff,0x0fff,0x07ff,
0x03ff,0x01ff,0x00ff,0x007f,
0x003f,0x00ff,0x01ff,0x10ff,
0x30ff,0xf87f,0xf87f,0xfc3f,
0x0000,0x7c00,0x6000,0x7000,
0x7800,0x7c00,0x7e00,0x7f00,
0x7f80,0x7e00,0x7c00,0x4600,
0x0600,0x0300,0x0300,0x0180
},
0,0,
};

/*鼠标光标显示*/
void MouseOn()
{
_AX=0x01;
geninterrupt(0x33);
}

/*鼠标光标掩示*/
void MouseOff()/*鼠标光标隐藏*/
{
_AX=0x02;
geninterrupt(0x33);
}
void MouseSetXY(int x,int y)/*设置当前位置*/
{
_CX=x;
_DX=y;
_AX=0x04;
geninterrupt(0x33);
}
int LeftPress()/*左键按下*/
{
_AX=0x03;
geninterrupt(0x33);
return(_BX&1);
}
void MouseGetXY()/*得到当前位置*/
{
_AX=0x03;
geninterrupt(0x33);
MouseX=_CX;
MouseY=_DX;
}
begain()/*游戏开始画面*/
{
int i,j;
loop: cleardevice();
MouseOn();
MouseSetXY(180,30);
MouseX=180;
MouseY=30;
scorenum=0;
setfillstyle(SOLID_FILL,7);
bar(190,60,390,290);
setfillstyle(SOLID_FILL,8);
for(i=100;i<300;i+=20)/*画格子*/
for(j=200;j<400;j+=20)
bar(j-8,i+8,j+8,i-8);
setcolor(7);
setfillstyle(SOLID_FILL,YELLOW);/*画脸*/
fillellipse(290,75,10,10);
setcolor(YELLOW);
setfillstyle(SOLID_FILL,0);
fillellipse(285,75,2,2);
fillellipse(295,75,2,2);
setcolor(0);
bar(287,80,293,81);
randomize();
for(i=0;i<10;i++)
for(j=0;j<10;j++)
{
num[i][j]=random(7)+10;/*用10代表地雷算了*/
if(num[i][j]==10)
scorenum++;
}
sprintf(score,"%d",scorenum);
setcolor(1);
settextstyle(0,0,2);
outtextxy(210,70,score);
scorenum=100-scorenum;/*为了后面判断胜利*/
}
gameove()/*游戏结束画面*/
{
int i,j;
setcolor(0);
for(i=0;i<10;i++)
for(j=0;j<10;j++)
if(num[i][j]==10)/*是地雷的就显示出来*/
{
setfillstyle(SOLID_FILL,RED);
bar(200+j*20-8,100+i*20-8,200+j*20+8,100+i*20+8);
setfillstyle(SOLID_FILL,0);
fillellipse(200+j*20,100+i*20,7,7);
}
}
int tongji(int i,int j)/*计算有几个雷*/
{
int x=0;/*10代表地雷*/
if(i==0&&j==0)
{
if(num[0]==10)
x++;
if(num[0]==10)
x++;
if(num==10)
x++;
}
else if(i==0&&j==9)
{
if(num[0]==10)
x++;
if(num==10)
x++;
if(num==10)
x++;
}
else if(i==9&&j==0)
{
if(num[0]==10)
x++;
if(num==10)
x++;
if(num==10)
x++;
}
else if(i==9&&j==9)
{
if(num==10)
x++;
if(num==10)
x++;
if(num==10)
x++;
}
else if(j==0)
{
if(num[i][j+1]==10)
x++;
if(num[i+1][j]==10)
x++;
if(num[i-1][j]==10)
x++;
if(num[i-1][j+1]==10)
x++;
if(num[i+1][j+1]==10)
x++;
}
else if(j==9)
{
if(num[i][j-1]==10)
x++;
if(num[i+1][j]==10)
x++;
if(num[i-1][j]==10)
x++;
if(num[i-1][j-1]==10)
x++;
if(num[i+1][j-1]==10)
x++;
}
else if(i==0)
{
if(num[i+1][j]==10)
x++;
if(num[i][j-1]==10)
x++;
if(num[i][j+1]==10)
x++;
if(num[i+1][j-1]==10)
x++;
if(num[i+1][j+1]==10)
x++;
}
else if(i==9)
{
if(num[i-1][j]==10)
x++;
if(num[i][j-1]==10)
x++;
if(num[i][j+1]==10)
x++;
if(num[i-1][j-1]==10)
x++;
if(num[i-1][j+1]==10)
x++;
}
else
{
if(num[i-1][j]==10)
x++;
if(num[i-1][j+1]==10)
x++;
if(num[i][j+1]==10)
x++;
if(num[i+1][j+1]==10)
x++;
if(num[i+1][j]==10)
x++;
if(num[i+1][j-1]==10)
x++;
if(num[i][j-1]==10)
x++;
if(num[i-1][j-1]==10)
x++;
}
return(x);
}
funcheck(int i,int j)/*开始找无雷*/
{
scorenum--;
if(p[i][j]==0&&num[i][j]!=10)
{
setfillstyle(SOLID_FILL,7);/*显示无雷区*/
bar(200+j*20-7,100+i*20-7,200+j*20+7,100+i*20+7);
num[i][j]=-1;
}
else if(p[i][j]!=0)
{
sprintf(score,"%d",p[i][j]);/*输出雷数*/
setcolor(RED);
outtextxy(195+j*20,95+i*20,score);
num[i][j]=-1;
return ;
}
if(i!=0&&num[i-1][j]!=-1&&num[i-1][j]!=10)/*第归开始*/
funcheck(i-1,j);
if(i!=0&&j!=9&&num[i-1][j+1]!=-1&&num[i-1][j+1]!=10)
funcheck(i-1,j+1);
if(j!=9&&num[i][j+1]!=-1&&num[i][j+1]!=10)
funcheck(i,j+1);
if(j!=9&&i!=9&&num[i+1][j+1]!=-1&&num[i+1][j+1]!=10)
funcheck(i+1,j+1);
if(i!=9&&num[i+1][j]!=-1&&num[i+1][j]!=10)
funcheck(i+1,j);
if(i!=9&&j!=0&&num[i+1][j-1]!=-1&&num[i+1][j-1]!=10)
funcheck(i+1,j-1);
if(j!=0&&num[i][j-1]!=-1&&num[i][j-1]!=10)
funcheck(i,j-1);
if(i!=0&&j!=0&&num[i-1][j-1]!=-1&&num[i-1][j-1]!=10)
funcheck(i-1,j-1);
}

playgame()/*游戏过程*/
{int i,j,numx;
for(i=0;i<10;i++)
for(j=0;j<10;j++)
p[i][j]=tongji(i,j);/*把标
东大坡居士 2010-01-01
  • 打赏
  • 举报
回复
找源码吧~
加载更多回复(4)

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧