资源简介

用VC6.0写的一款在控制台里玩的扫雷游戏

资源截图

代码片段和文件信息

#include 
#include 
#include 
#include 
#include 
using namespace std;

// 宏定义
#define KEY_UP    0xE048             //↑键
#define KEY_DOWN  0xE050             //↓键
#define KEY_LEFT  0xE04B             //←键
#define KEY_RIGHT 0xE04D             //→键
#define KEY_ESC   0x001B             //ECS键
#define KEY_1     ‘1‘                //字符1
#define KEY_2     ‘2‘                //字符2
#define KEY_3     ‘3‘                //字符3
#define KEY_4     ‘4‘                //字符4
#define GAME_MAX_WIDTH   50         //最大宽度 x
#define GAME_MAX_HEIGHT  50         //最大高度 y

//宏定义颜色
#define LIGHTBLUE      9 //    1    蓝色
#define LAKEBLUE       3 //    2    湖蓝色
#define LIGHTGREEN     11 //    3    黄色
#define PURPLE         5 //    4    紫色
#define LIGHTPURPLE    13 // 5678 淡紫色
#define WHITE          7 //   方块  白色
#define GREEN          2 //   标记  绿色
#define LIGHTRED       12 //   雷区  淡红色
#define YELLOW         6 //  误扫    黄色

// 字符串宏定义,用于游戏结束后的不同使用
#define STR_GAMEtitle “\t游戏指南:1 = 使劲.踩;2 = 我.扫...;3 = AOE群** ;ESC = 返回主菜单“
#define STR_GAMEWIN   “\t祝贺你!扫雷成功!\n“
#define STR_GAMEOVER  “\t踩到地雷!对不起你输了!\n“
#define STR_GAMEEND   “\n\t\t感谢使用~!欢迎下次再来O(∩_∩)O~~\n“

static int BoomNum;
static int NowBoomNum;
//-------------------------------------------------------------
// 控制台类---指示光标等控制台操作
class CConsoleWnd
{
    public:
        static int TextOut(const char*);             //输出字符串
        static int GotoXY(int int);                 //光标指向(x,y)
        static int CharOut(int int const int);     //输出位于(x,y)上的字符
        static int TextOut(int int const char*);   //输出位于(x,y)上的字符串
        static int GetKey();                         //获取键入的ASCII码
};
//
//  int CConsoleWnd::GetKey()
//  等待标准输入,返回键码
//
int CConsoleWnd::GetKey()
{
int nkey=getch()nk=0;
if(nkey>=128||nkey==0)nk=getch();
return nk>0?nkey*256+nk:nkey;
}
//
//  int CConsoleWnd::GotoXY(int x int y)
//  将控制台光标移至(x,y)点
//
int CConsoleWnd::GotoXY(int x int y)
{
COORD cd;
cd.X = x;cd.Y = y;
return SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE)cd);
}
//
//  int CConsoleWnd::TextOut(const char* pstr)
//  在当前位置输出字符串
//
int CConsoleWnd::TextOut(const char* pstr)
{
for(;*pstr;++pstr)putchar(*pstr);
return 0;
}
//
//  int CConsoleWnd::CharOut(int x int y const int pstr)
//  输出在(x,y)上的字符
//
int CConsoleWnd::CharOut(int x int y const int pstr)
{
GotoXY(x y);
return putchar(pstr);
}
//
//  int CConsoleWnd::TextOut(const char* pstr)
//  输出在(x,y)上的字符串
//
int CConsoleWnd::TextOut(int x int y const char* pstr)
{
GotoXY(x y);
return TextOut(pstr);
}
//
//-------------------------------------------------------------
//应用类---正式玩游戏  控制台类的派生类
class CSLGame:public CConsoleWnd
{
private:
private:
int curXcurY;         //当前x,y
int poolWidthpoolHeight;     //当前宽度和高度
int bm_gamepool[GAME_MAX_HEIGHT+2][GAME_MAX_WIDTH+2];    //游戏存放字符的二维数组
public:
CSLGame():curX(

评论

共有 条评论