时隔一年多,突然找到了大一暑假用c语言写的扫雷游戏,想起了那个大一的自己,额,15天写了一个扫雷也是蛮拼的,大一留下的东西,然而现在已经看不懂当时的代码代码了。就只剩当时的思路。
写这篇博客,附上代码,有兴趣的朋友可以玩玩,想写扫雷的同学,也可以借鉴下,特别是点击一下,出现大片空白区域,那个地方可以多看看,个人觉得很难,当时把我难得够呛。
代码命名成c++格式,如:1.cpp,主要是为了应用c++的一个图形库,但是其中的语法都是c的语法,
其中用到了一个图形库graphics.h,我用的是vc编辑器,没有这个库,所有需要补一个graphics库,这里下载
代码如下:
//////////////////////////
//程序名称:扫雷 //
//作者: ys //
//////////////////////////
#include <graphics.h>
#include <conio.h>
#include <time.h>
#include <stdlib.h>
#include <stdio.h>
void draw_circul(int x,int y,int row,int col);
int init_system();
void draw_mode(int x,int y,int wm_wh,int type);
void draw_framework();
void set_mine(int num);
void draw_min_max_framework(int x1,int y1,int x2,int y2);
void draw_happyface(int type);
void draw_clock_score();
void draw_mine(int row,int col);
void mouse_clear_mine();
void round_mine_num();
int deal_space(int x, int y);
void deal_situation(int y,int x);
void output_num();
void show_space(int y,int x);
void show_num(int y,int x);
#define FLAG 20
#define win m_col*m_row
#define mine_num 20 //雷的数目
int m_maxx,m_maxy;
int m_row,m_col,m_wh;
int x0,y0,num=0;
int **p;
int main(void)
{
init_system(); //初始化系统
if(!init_system())
exit(0);
x0=(m_maxx-m_col*(m_wh+1))/2;
y0=(m_maxy-m_row*(m_wh+1))/2;
draw_circul(x0,y0,m_row,m_col); //初始化界面
draw_framework(); //框架
set_mine(mine_num); //布雷
round_mine_num(); //计算周围雷数
mouse_clear_mine(); //鼠标清雷
getch();
closegraph();
return 0;
}
//鼠标清雷
void mouse_clear_mine()
{
MOUSEMSG m;
m=GetMouseMsg();
int x,y;
while(1)
{
m=GetMouseMsg();
x=(m.x-x0)/(m_wh+1);
y=(m.y-y0)/(m_wh+1);
switch(m.uMsg)
{
case WM_LBUTTONDOWN:
{
if (x0<m.x && m.x<((m_wh+1)*m_col+x0) && m.y>y0 && m.y<(y0+(m_wh+