摇摆游戏攻略网

关闭导航
首页 > 冒险生存 > 游戏攻略

如何用C实现一个控制台界面的扫雷

整理:yaobaiwang.com 时间:04月29日

[如何用八门神器登山赛车的金币钱数]如何用八门神器登山赛车的金币钱数:登山赛车修改器之八门神器修改金币: 准备工具: 已经root的安卓手机或者已经越狱的IOS设备、安装好的登山赛车游戏以及八门神器。 登山赛车修...+阅读

如何用C实现一个控制台界面的扫雷

#include#include#define YELLOW FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_INTENSITY #define CYAN FOREGROUND_BLUE | FOREGROUND_GREEN | FOREGROUND_INTENSITY #define ORANGE FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_INTENSITY #define PURPLE FOREGROUND_RED | FOREGROUND_BLUE | FOREGROUND_INTENSITY using namespace std; const int STARTX = 30; const int STARTY = 6; const int MAXX = 9;//雷区的宽 const int MAXY = 9;//雷区的高 const int BOMBNUMBER = 10;//地雷数量 class Cube{ private: bool ifHaveBomb;//该方块是否含有炸弹 bool ifOpen;//该方块有无被玩家翻开 int nearBombNumber;//该区块周围8格的含有炸弹的方块的数量 public: void setOpen() { //将Open的值改为true ifOpen = true; } bool getOpen() { //获取ifOpen的值 return ifOpen; } void setNearBombNumber(int number) { //给nearBombNumber赋值 nearBombNumber = number; } void haveBomb() { //给方块放置地雷 ifHaveBomb = true; } bool getIfHaveBomb() { //获取ifHaveBomb的值 return ifHaveBomb; } int getNearBombNumber() { //获取nearBombNumber的值 return nearBombNumber; } void resetCube(bool ifhavebomb = false, bool ifopen = false, int nearbombnumber = 0){ //初始化成员数据 ifHaveBomb = ifhavebomb; ifOpen = ifopen; nearBombNumber = nearbombnumber; } }; Cube cube[MAXX][MAXY]; void GoTo(int x, int y);//定位光标 void setBomb(int bombNumber);//生成bombNumber个炸弹并且放进随机的方块中 void show();//显示地雷阵 int checkAndSetNearBombNumber(int x, int y);//检查当前方块周围的雷数量 void gameStart();//初始化游戏 void showXY();//显示雷区坐标 bool player(bool &life);//玩家输入坐标翻开方块 void message(bool life);//玩家游戏结束后输出的信息 void autoOpen(int x,int y);//玩家翻开的方块为不含雷且周围无雷的方块时,自动翻开周围无雷的方块 bool ifWin();//判断玩家是否扫雷成功 void showBomb();//游戏结束后显示地雷位置 int main() { gameStart(); show(); bool life = true, win = true; while (player(life) & !ifWin()) { } message(life & ifWin()); return 0; } void GoTo(int x, int y) { //定位光标 COORD coord = { x,y }; SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord); } void setBomb(int bombNumber = BOMBNUMBER) { //生成bombNumber个炸弹并且放进随机的方块中 srand((unsigned)GetCurrentTime()); while (bombNumber--) { int x = MAXX + 1, y = MAXY + 1; while ((x >= MAXX || y >= MAXY) || cube[x][y].getIfHaveBomb() == true) { x = rand() % MAXX; y = rand() % MAXY; } cube[x][y].haveBomb(); } } void show() { //显示地雷阵 system("cls"); showXY(); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), CYAN); for (int i = 0;i

扫雷程序用c语言怎样写

这个程序应该不下一千行。。。要干什么用的?总体来说,是用一个二维数组a[][]来保存雷的存储情况。然后用一个二维数组chang[][]表示雷的现实情况。我今天写了近一个小时的时间,把关键部分,也可以说全部与算法有关的部分写出来了,并不是很完善你可以自己完善一下,希望能帮上忙。 #include #include #include #defind N 5 void main() { int a[N][N]=0;//定义5行5列的数组,保存0或1,分别代表无雷、有雷。 for(l=1;l<=5;l++) { startbomd(void); if(a[*bomb_here1][*bomb_here2]=0) a[*bomb_here1][*bomb_here2]=1; else l--; }//初始化数组,定义数组内5个元素的值为1,即5个雷。 int i,j;int *k=0; scanf("%d%d",&i,&j); if (a[i][j]=1) printf("扫雷失败") else while(a[i][j]==0) { int chang[N][N]; scanf("%d%d",&i,&j); weseechang(i,j,*k,chang[][]); printf("%d,chang[i][j]"); if(*k=20) break; } if(k=20) printf("扫雷成功"); if(k<20) printf("扫雷失败") weseechang(int i,int j,int *k,int chang[N][N],int a[][])//传入参数i和j,即输入的行列数。

{ int chang[i][j]=a[i+1][j]+a[i][j+1]+a[i+1][j+1]+a[i-1][j-1]+a[i-1][j]+a[i][j-1]+a[i+1][j-1]+a[i-1][j+1];//把i行j列显示为四周雷的数目之和。(共八个方向。) *k++; if(chang[i][j]==0)//如果点击的地方四周没有雷,即雷的数目为0,(就是玩扫雷的时候一点一片的情况),那么递归调用自己,直到显示四周雷的数目之和。 { weseechang(i,j-1,*k, chang[N][N],a[][]); weseechang(i,j+1, *k, chang[N][N],a[][]); weseechang(i,j, *k, chang[N][N],a[][]); weseechang(i-1,j, *k, chang[N][N],a[][]); weseechang(i+1,j,*k, chang[N][N],a[][]); weseechang(i+1,j-1, *k, chang[N][N],a[][]); weseechang(i-1,j+1, *k, chang[N][N],a[][]); weseechang(i+1,j+1, *k,chang[N][N],a[][]); weseechang(i-1,j-1, *k, chang[N][N],a[][]); } void startbomd(void)//随机产生两个数,这两个数大于0小于5。 { int *bomb_here1,*bomb_here2; srand((unsigned)time(null)) *bomb_here1=rand()%5; *bomb_here2=rand()%5; return *bomb_here1,*bomb_here2; } weseechang(i,j,*k,chang[][]);再不上一个参数weseechang(i,j,*k,chang,a); weseechang函数里的所有chang[N][N]参数改为chang[][] 应该没什么问题了 二维数组chang[][]表示点击过程中雷的显示情况。

c程序编程扫雷

希望对你有帮助! #include#include#include#define LEFTPRESS 0xff01 #define LEFTCLICK 0xff10 #define LEFTDRAG 0xff19 #define MOUSEMOVE 0xff08 int num[10][10];/*范围*/ int p[10][10];/*统计雷的数组*/ int loop;/*重新来的标志*/ int again=0;/*是否重来的变量*/ int scorenum;/*一开始统计有几个雷*/ char score[3];/*输出一共有几个地雷*/ 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()/*游戏e69da5e6ba9062616964757a686964616f31333332623963开始画面*/ { 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

dos扫雷C

字数超了,要完整的发邮箱。下面是部分程序:#include#include#include#include#includeusing namespace std; void SetColor(unsigned int a); class FormBlock { public: void ViewInfo(); int Mark(int x,int y); FormBlock(); ~FormBlock(); int InitForm(int x,int y,int mine); int RedrawForm(int x,int y); int OpenBlock(int x=-1,int y=-1); int NumofMine(int x=-1,int y=-1); private: int PutOut(int x,int y); int MakeForm(); int X; int Y; int Mine; int nX; int nY; int nMine; int *Block; time_t Time; time_t nTime; int Over; }; int main() { FormBlock fb; int X; int Y; int x=0; int y=0; int mine=0; int over; SetColor

(1); cout

以下为关联内容:

大神指点如何用java做扫雷小游戏详细大神指点如何用java做扫雷小游戏详细,vb做windows自带的扫雷游戏急代码和解释:这些东西早忘光了说下我的理解希望可以帮助你把。 1. 你先想好用什么来做,java swing里面做这个...

高一信息课作业:如何用VB程序做一个扫雷的小游戏大小只要6高一信息课作业:如何用VB程序做一个扫雷的小游戏大小只要6,java程序设计扫雷帮助看看:'一个简单扫雷游戏 , 作者 zfc QQ21338963 邮箱 zfczltom.comOption ExplicitDim Map() As...

C扫雷游戏上面显示时间的是什么控件或者说怎么实现的C扫雷游戏上面显示时间的是什么控件或者说怎么实现的:最简单的办法是用工具箱组件中的timer控件需要注意设置timer的interval属性为1000 interval属性代表多长时间触发一次ti...

c程序编程扫雷c程序编程扫雷,用VB编程实现扫雷的思路:希望对你有帮助! #include#include#include#define LEFTPRESS 0xff01 #define LEFTCLICK 0xff10 #define LEFTDRAG 0xff19 #define MOUS...

用VB编程实现扫雷的思路用VB编程实现扫雷的思路,扫雷的秘诀是什么:'一个简单扫雷游戏 Option Explicit Dim Map() As Integer Dim Row_Num, Col_Num As Integer '范围,一个正方形的边长 Dim Ant_Num A...

一个六边形扫雷的算法!用java实现一个六边形扫雷的算法!用java实现,扫雷点到空格时的算法:扫雷是八个边吧? 用链表,初始化的时候每颗雷都以自己为中心,指向其他雷 class Mine { bool ismine; Mine up; Mine down;...

关于扫雷c语言程序的问题!得往里边加代码以实现扫雷功能可问题关于扫雷c语言程序的问题!得往里边加代码以实现扫雷功能可问题,vc语言可以设计贪吃蛇和扫雷游戏吗:定义一个两维常量数组const int directions[8][2] 为8个方向对应的坐标变化...

扫雷 c语言代码告诉我扫雷 c语言代码告诉我,vb做windows自带的扫雷游戏急代码和解释:北京理工大学电子信息谢锦峰的答案,只要不是很奇怪的输入就应该可以过。然而北理网络教室的一个隐藏用例过不了...

C扫雷游戏编写C扫雷游戏编写,高一信息课作业:如何用VB程序做一个扫雷的小游戏大小只要6 6:using System; namespace Diyinside { /// public struct MinePoint { public int near_mine;//附件...

推荐文章