创天中文vc++6.0能运行的一百行代码的小游戏

阅读: 评论:0

2024年2月8日发(作者:)

创天中文vc++6.0能运行的一百行代码的小游戏

创天中文vc++6.0能运行的一百行代码的小游戏

扫雷游戏代码

#include

#include

#include

#include

#include

#pragma comment(lib,"")

#define Row 10 //行、列

#define COL 10

#define MINE 10 //雷的数量

#define SIZE 50 //图片宽度

@int map[ROW][COL];//全局变量自动初始化为0

【//定义图片数组,保存图片

IMAGE img[12];

//游戏胜利与否

int flag;

//游戏数据初始化

Ovoid GameInit()

mciSendString("open ./image/3 alias Bem", 0, 0, 0);

mciSendString("play BGM", 0, 0, 0):

//设置随机数种子

srand((unsigned)time(NULL));

//初始化数组

for (int i = 0; i < ROW;i++)

for (int j = 0; j < COL: j++)

map[il[jl= 0;

//埋雷,-1表示雷 10个雷

for (int i = 0; i < MINE;)

int r = rand() % 10;//0 9

int c= rand() % 10;

if (map[r][c]== 0)//还没有设置为雷

map[r][e]=-1;

i++;//每埋雷一次,就加1

//把以雷为中心的九宫格数据加1,雷除外for (int i = 0; i < ROW;i++)

for (int j = 0;j < COL; j++)

//判断是不是雷-1

if(map[i][j]==-1)

//遍历雷所在的九宫格

for (int m = i - 1; m <= i + 1; m++)

for (int n = j - 1; n <= j + 1; n++)

if((m >= 0 && m = 0 && n 〈CoL)&& map [ml[n]!=-1)

map [m][n]+= 1;

//加载图片

for (int i = 0; i < 12;i++)

char file[50]=“";

sprintf(file,"./image/Md. jpg", i);

1oadimage(&ing[i], file,SIZE, SIZE);

//加密格子

for (int i = 0; i

for (int j = 0; ji< COL;j++)

//map[i][ji]+= 20;

//绘制界面

Evoid GameDraw()

cleardevice();

for (int i = 0; i

for (int j= 0; j < COL; j++)

if(map[i][j]==-1)

putimage(j* SIXE, i * STZE, &ing[9]);//绘制雷

else if (map[i][j]>=0 && map[i][j]<=8)//把其他数字一并处理01 2 3 4 5 6

7 8

putimage(j * SIZE, i * SIZE, &img[map[i][j]]);

else if (map[i][j]>= 19 &A map[i][ji]<= 28)

putimage(j * SIZE, i * SIZE, &img[10]);

else if (map[i][jl>30)//标记

putimage(j * SIZE, i * SIZE,&img[11]);

void openNull(int row, int col);

//鼠标操作

gint

MouseContro1()

(MouseHitO)//判断有没有鼠标消息

MOUSEMSG msg = GetMouselsg();//鼠标所在的 x,y

int row = msg.y / SIZE;//把鼠标坐标转换成,数组下标

int col= msg.X / SI2E;

//对鼠标消息进行分发

switch ()

case WM_LBUTTONDOWN://鼠标左键点击

if (map[row][col]>8)//如果没有打开就打开

mciSendString("close click", 0, 0, 0);

mciSendString("open ./image/ alias click", 0, 0, 0):

mciSendString("play click", 0, 0, 0);

map[row][co1]-= 20;

flagtt;

openMul1(row, col);

break;

case WM_RBUTTONDOWN://鼠标右键点击

if (map[row][col]〉 8 && map[row][co1]<= 28)//如果没打开,且未被标记

map[row][col]+= 20;

else if(map[row][col]>28)//只有没打开的才可以取消标记和标记

map [row][col]-= 20;

break;

return map[row][col];

//打开所有以空白为中心的九宫格

日void openNul1(int row,int col)

if (map[row][col]== 0)//点击的是空白

for (int m= row - 1;m<= row + 1; mt+)

for (int n = col - 1; n <= col + 1; nt+)

if ((m >= 0 && m 〈 RoW && n >= 0 && n < COL) &&

(map [m][n]=-20 || map[m][n]!=19)&

map [m][n]>8)//如果没有月结,并且为空或者数字,并且没有被打开

map [ml [n]-= 20;

flagt+;

openNul1(m, n);

lvoid Jude()

if (MouseControl()==-1)

1/结束

int isok=MessageBox(GetHWnd(),“你输了,是否再玩一次","提示",MB_OKCANCEL);

if (IDOK == isok)

GameInit();

flag=0;

else

exit(666);

mciSendString("close BGm", o, 0, 0);

if (flag == ROW * COL - MINE)

int isok = MessageBox(GetRWnd(),“你赢了,是否再玩一次","提示",MB_OKCANCEL):

if (IDOK == isok)

Gamelnit(0);

flag = 0;

else

exit(666);

mciSendString("close Bcm", 0, 0, 0);

Evoid show()

for (int i= 0; i

for (int j = 0;j

printf("*2d ", map[i][j]);

putchar("In');

putchar('n');

putchar('Vn');

//system("cls");//清屏

Pint main()

initgraph(ROW * SIZE, COL * SIZE, SHOWCONSOLE);

GameInit();

show();

BeginBatchDraw();

while (1)

//show();

GameDraw();

FlushBatchDraw();

Jude();

EnaBatchDraw();

getchar();

return 0;

创天中文vc++6.0能运行的一百行代码的小游戏

本文发布于:2024-02-08 20:03:59,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170739383968621.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:鼠标   图片   代码   打开   数组   游戏
留言与评论(共有 0 条评论)
   
验证码:
排行榜

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23