C语言十大经典实例编程 下载本文

}

WayCopy(oldmap,map);

if(oldmap[i][j-1]==0&&!yes)判断左方是否可以走 {

FindWay(oldmap,i,j-1); if(yes) { way[wayn][0]=i; way[wayn++][1]=j; return; } }

WayCopy(oldmap,map);

if(oldmap[i-1][j-1]==0&&!yes)判断左上方是否可以走 {

FindWay(oldmap,i-1,j-1); if(yes) { way[wayn][0]=i; way[wayn++][1]=j; return; } }

return; }

void MapRand(int (map)[N])开始的随机迷宫图 {

int i,j;

cleardevice();清屏

randomize(); 随机数发生器 for(i=0;i

for(j=0;j

void PrMap(int (map)[N])输出迷宫图 {

int i,j;

for(i=0;i

void Find(void)找到通路 {

int i;

setfillstyle(SOLID_FILL,RED);红色输出走的具体路线 wayn--;

for(i=wayn;i>=0;i--) {

bar(100+way[i][1]15-6,50+way[i][0]15-6,100+ way[i][1]15+6,50+way[i][0]15+6); sleep(1);控制显示时间 }

bar(100+(N-2)15-6,50+(N-2)15-6,100+ (N-2)15+6,50+(N-2)15+6); 在目标点标红色 setcolor(GREEN);

settextstyle(0,0,2);设置字体大小 outtextxy(130,400,\}

void NotFind(void)没找到通路 {

setcolor(GREEN);

settextstyle(0,0,2);设置字体大小

outtextxy(130,400,\}

void Result(void)结果处理 {

if(yes)如果找到 Find(); else没找到路

NotFind(); getch(); }

void Close(void)图形关闭 {

closegraph(); }

案例五 扫地雷游戏 5.3.4 源程序

#include #include #include

#define LEFTPRESS 0xff01 #define LEFTCLICK 0xff10 #define LEFTDRAG 0xff19 #define MOUSEMOVE 0xff08 struct {

int num;格子当前处于什么状态,1有雷,0已经显示过数字或者空白格子 int roundnum;统计格子周围有多少雷

int flag;右键按下显示红旗的标志,0没有红旗标志,1有红旗标志 }Mine[10][10];

int gameAGAIN=0;是否重来的变量

int gamePLAY=0;是否是第一次玩游戏的标志 int mineNUM;统计处理过的格子数

char randmineNUM[3];显示数字的字符串 int Keystate; int MouseExist; int MouseButton; int MouseX; int MouseY;

void Init(void);图形驱动

void MouseOn(void);鼠标光标显示 void MouseOff(void);鼠标光标隐藏

void MouseSetXY(int,int);设置当前位置 int LeftPress(void);左键按下

int RightPress(void);鼠标右键按下 void MouseGetXY(void);得到当前位置 void Control(void);游戏开始,重新,关闭 void GameBegain(void);游戏开始画面 void DrawSmile(void);画笑脸

void DrawRedflag(int,int);显示红旗

void DrawEmpty(int,int,int,int);两种空格子的显示

void GameOver(void);游戏结束 void GameWin(void);显示胜利

int MineStatistics(int,int);统计每个格子周围的雷数 int ShowWhite(int,int);显示无雷区的空白部分 void GamePlay(void);游戏过程 void Close(void);图形关闭 void main(void) {

Init(); Control(); Close(); }

void Init(void)图形开始 {

int gd=DETECT,gm;

initgraph(&gd,&gm,\}

void Close(void)图形关闭 {

closegraph(); }

void MouseOn(void)鼠标光标显示 {

_AX=0x01;

geninterrupt(0x33); }

void MouseOff(void)鼠标光标隐藏 {

_AX=0x02;

geninterrupt(0x33); }

void MouseSetXY(int x,int y)设置当前位置 {

_CX=x; _DX=y; _AX=0x04;

geninterrupt(0x33); }

int LeftPress(void)鼠标左键按下 {

_AX=0x03;

geninterrupt(0x33); return(_BX&1); }