精华内容
下载资源
问答
  • C++ 小游戏

    2011-10-23 12:00:59
    C++ 小游戏 扫雷 俄罗斯方块 贪吃蛇 拼图 扫雷 俄罗斯方块 贪吃蛇 拼图
  • C++小游戏

    2007-07-19 21:04:41
    简单的游戏让你学会C++
  • RPG类C++小游戏

    2021-01-01 09:26:22
    RPG类C++小游戏
  • C++小游戏——射击小行星源码
  • c++小游戏 贪吃蛇

    2018-06-18 22:23:00
    c++小游戏 贪吃蛇
  • C++小游戏源码

    2015-12-02 14:25:06
    c++小游戏源码,入门小游戏,纯C++源码,欢迎下载
  • c++小游戏三国杀.cpp

    2021-07-14 12:49:24
    c++小游戏三国杀 2000都行代码
  • 本文通过实例代码给大家介绍了C++小游戏BrickHit的相关资料,需要的朋友可以参考下
  • c++小游戏代码

    2015-06-23 11:14:10
    c++小游戏代码
  • C++小游戏设计

    2011-11-28 19:55:46
    C++小游戏设计
  • c++小游戏 走迷宫

    千次阅读 多人点赞 2020-08-10 18:08:35
    c++小游戏 走迷宫 最近做了一个走迷宫,自我感觉不错。目前制作了10张地图,游玩前需先仔细阅读帮助,不然会无从下手哦!!!查看方法:运行程序,然后按h键。代码如下: #include<iostream> #include<...

    c++小游戏 走迷宫

    最近做了一个走迷宫,自我感觉不错。目前制作了10张地图,游玩前需先仔细阅读帮助,不然会无从下手哦!!!查看方法:运行程序,然后按h键。代码如下:

    #include<iostream>
    #include<windows.h>
    #include"GotoXY.h"
    #include <conio.h>
    #include <stdlib.h>
    #include <time.h>
    using namespace std;
    void help();
    void migong();
    void m();
    void help()
    {
     char ch2;
     system("cls");
     cout<<"操作说明:"<<endl;
     cout<<endl;
     cout<<"移动说明:"<<endl;
     cout<<"w-向上 s-向下 a-向左 d-向右"<<endl;
     cout<<endl;
     cout<<"标识说明:"<<endl;
     cout<<"&-炸药 @-玩家 #-墙 $-钥匙 ^-地刺 %-传送门 0-可以被炸药炸开的墙"<<endl;
     cout<<endl; 
     cout<<"操作说明:"<<endl;
     cout<<"x-爆破(需要炸药) 移动至物品上方-捡起物品 拥有钥匙后接近传送门附近-传送(按任意键继续)"<<endl; 
     cout<<endl;
     cout<<"注意事项:"<<endl;
     cout<<"踩到地刺会s哦,请小心"<<endl;
     cout<<"按任意键返回"<<endl; 
     ch2=_getch();
     m(); 
    }
    void migong()
    {
     system("cls");
     char ch;
     srand(time(NULL));
     int k; 
     int z=0;
     int key=0;
     int zx[100];
     int zy[100];
     int gq=0; 
     GotoXY(60,5);
     cout<<"TNT x 0"; 
     while (1)
     {
     int map[10][6][10]={ 
     {
      {1,1,1,1,1,1,1,1,1,1},
      {1,0,3,0,4,0,1,1,0,1},
      {1,0,0,0,0,1,1,1,2,1},
      {1,0,0,0,0,1,1,1,0,1},
      {1,0,0,0,0,0,0,0,0,1},
      {1,1,1,1,1,1,1,1,1,1}
     },
     {
      {1,1,1,1,1,1,1,1,1,1},
      {1,0,0,0,0,0,1,0,2,1},
      {1,0,1,0,1,1,1,0,0,1},
      {1,0,1,0,0,0,0,0,0,1},
      {1,3,1,0,0,0,0,4,0,1},
      {1,1,1,1,1,1,1,1,1,1}
     },
     {
      {1,1,1,1,1,1,1,1,1,1},
      {1,0,0,0,0,0,0,2,0,1},
      {1,0,0,3,0,0,0,0,0,1},
      {1,0,0,0,0,0,0,0,6,1},
      {1,0,0,5,0,0,0,6,4,1},
      {1,1,1,1,1,1,1,1,1,1}
     },
     {
      {1,1,1,1,1,1,1,1,1,1},
      {1,3,1,0,0,0,1,7,4,1},
      {1,0,1,0,1,0,1,0,0,1},
      {1,0,1,0,1,2,1,0,7,1},
      {1,0,0,0,1,0,0,0,7,1},
      {1,1,1,1,1,1,1,1,1,1}
     }, 
     {
      {1,1,1,1,1,1,1,1,1,1},
      {1,1,2,1,1,0,0,0,1,1},
      {1,1,0,1,1,0,1,0,1,1},
      {1,0,0,0,0,0,1,0,1,1},
      {1,3,1,1,1,1,1,0,4,1},
      {1,1,1,1,1,1,1,1,1,1}
     },
     {
      {1,1,1,1,1,1,1,1,1,1},
      {1,0,0,0,0,0,0,2,1,1},
      {1,6,6,6,6,0,1,0,1,1},
      {1,6,3,5,6,0,1,0,0,1},
      {1,6,6,6,6,0,0,0,4,1},
      {1,1,1,1,1,1,1,1,1,1}
     },
     {
      {1,1,1,1,1,1,1,1,1,1},
      {1,5,0,0,0,0,0,3,0,1},
      {1,6,6,6,0,0,0,0,0,1},
      {1,6,2,6,0,0,0,0,0,1},
      {1,6,6,6,0,0,0,0,4,1},
      {1,1,1,1,1,1,1,1,1,1}
     },
     {
      {1,1,1,1,1,1,1,1,1,1},
      {1,2,6,0,0,0,0,6,4,1},
      {1,7,6,0,0,0,0,6,5,1},
      {1,6,6,0,6,6,6,6,6,1},
      {1,0,0,0,6,3,5,0,0,1},
      {1,1,1,1,1,1,1,1,1,1}
     },
     {
      {1,1,1,1,1,1,1,1,1,1},
      {1,0,0,0,1,1,0,0,0,1},
      {1,2,0,0,7,7,0,0,3,1},
      {1,0,0,0,7,7,0,0,4,1},
      {1,0,0,0,0,0,0,1,0,1},
      {1,1,1,1,1,1,1,1,1,1}
     },
     {
      {1,1,1,1,1,1,1,1,1,1},
      {1,7,7,2,0,0,0,7,7,1},
      {1,5,7,7,0,0,7,7,5,1},
      {1,5,7,7,0,0,7,7,5,1},
      {1,7,3,0,0,0,0,4,7,1},
      {1,1,1,1,1,1,1,1,1,1}
     }
    }; 
     k=rand()%10;
     while (1)
     {
      int e=1;
      int keyx,keyy;
      int x;
      int y;
      int dx;
      int dy;
      GotoXY(0,0);
      for (int i=0;i<6;i++)
      {
       for (int j=0;j<10;j++)
       {
        if (map[k][i][j]==1)
        {
         cout<<"#";
        }
        if(map[k][i][j]==0)
        {
         cout<<" ";
        }
        if(map[k][i][j]==2)
        {
         cout<<"$";
         keyx=i;
         keyy=j;
        }
        if (map[k][i][j]==4)
        {
         cout<<"%";
         dx=i;
         dy=j;
        }
        if (map[k][i][j]==3)
        {
         cout<<"@";
         x=i;
         y=j;
        }
        if (map[k][i][j]==5)
        {
         cout<<"&";
         zx[e]=i;
         zy[e]=j;
         e++;
        }
        if (map[k][i][j]==6)
        {
         cout<<"O";
        }
        if (map[k][i][j]==7)
        {
         cout<<"^";
        }
       }
       cout<<endl;
      }
      if(x==keyx&&y==keyy)
      {
       key=1;
       GotoXY(60,4);
       cout<<"YOU GET THE KEY!!!                ";
      }
      else if (x==dx-1&&y==dy||x==dx+1&&y==dy||x==dx&&y==dy+1||x==dx&&y==dy-1)
      {
       if (key==1)
       {
        GotoXY(60,4);
        cout<<"YOU WIN!!! <<<按任意键继续>>>                               ";
        ch=_getch();
        key=0;
        break;
       }
       else
       {
        GotoXY(60,4);
        cout<<"NO KEY!!!                                      ";
       }
      }
      for (int i=1;i<=5;i++) 
      {
      if (x==zx[i]&&y==zy[i])
      {
       z+=1;
       zx[i]=100;
       zy[i]=100;
       GotoXY(60,4);
       cout<<"YOU GET A BAG OF TNT!!!                          ";
       GotoXY(66,5);
       cout<<z;
      }
      }
      GotoXY(60,3);
      cout<<"第"<<gq<<"层" ;
      GotoXY(0,6); 
      ch=_getch();
      switch (ch)
      {
       case 'w':
        if (map[k][x-1][y]==1||map[k][x-1][y]==4||map[k][x-1][y]==6)
        {
         break;
        }
        else if (map[k][x-1][y]==7)
        {
         GotoXY(y,x-1);
         cout<<"@";
         GotoXY(y,x);
         cout<<" ";
         GotoXY(60,4);
         cout<<"YOU LOSE!!!                                          ";
         ch=_getch();
         system("cls");
         m();
        }
        else 
        {
         map[k][x-1][y]=3;
         map[k][x][y]=0;
        }
        break;
       case 's':
        if (map[k][x+1][y]==1||map[k][x+1][y]==4||map[k][x+1][y]==6)
        {
         break;
        }
        else if (map[k][x+1][y]==7)
        {
         GotoXY(y,x+1);
         cout<<"@";
         GotoXY(y,x);
         cout<<" ";
         GotoXY(60,4);
         cout<<"YOU LOSE!!!                                          ";
         ch=_getch();
         system("cls");
         m();
        }
        else
        {
         map[k][x][y]=0;
         map[k][x+1][y]=3;
        }
        break;
       case 'a':
        if (map[k][x][y-1]==1||map[k][x][y-1]==4||map[k][x][y-1]==6)
        {
         break;
        }
        else if (map[k][x][y-1]==7)
        {
         GotoXY(y-1,x);
         cout<<"@";
         GotoXY(y,x);
         cout<<" ";
         GotoXY(60,4);
         cout<<"YOU LOSE!!!                                          ";
         ch=_getch();
         system("cls");
         m();
        }
        else 
        {
         map[k][x][y]=0;
         map[k][x][y-1]=3;
        }
        break;
       case 'd':
        if (map[k][x][y+1]==1||map[k][x][y+1]==4||map[k][x][y+1]==6)
        {
         break;
        }
        else if (map[k][x][y+1]==7)
        {
         GotoXY(y+1,x);
         cout<<"@";
         GotoXY(y,x);
         cout<<" ";
         GotoXY(60,4);
         cout<<"YOU LOSE!!!                                          ";
         ch=_getch();
         system("cls");
         m();
        }
        else 
        {
         map[k][x][y]=0;
         map[k][x][y+1]=3;
        }
        break; 
       case 'x':
        if (z>0)
        {
         z--;
         GotoXY(66,5);
         cout<<z<<" ";
         for (int m=x-1;m<=x+1;m++)
         {
          for (int d=y-1;d<=y+1;d++)
          {
           if (map[k][m][d]==6)
           {
            map[k][m][d]=0;
           }
          }
         }
        }
        else
        {
         GotoXY(60,4);
         cout<<"YOU DON'T HAVE ANY TNT!!!                          ";
        }
        break;
      }
     }
     GotoXY(0,7);
     gq++;
     key=0;
     }
    }
    void m()
    {
     system("cls");
     char ch1;
     system("title 迷宫-作者S_JH330206"); 
     cout<<"                          迷宫游戏"<<endl; 
     cout<<"----------------------------------------------------------------"<<endl;
     cout<<endl;
     cout<<"                          [h]帮助"<<endl;
     cout<<"                          [m]游戏"<<endl;
     cout<<endl;
     cout<<"----------------------------------------------------------------"<<endl;
     ch1=_getch();
     if (ch1=='m')
     {
      migong();
     }
     if (ch1=='h')
     {
      help();
     }
     else
     {
      m();
     } 
    }
    int main()
    {
     m();
     return 0;
    }

    用到一个自定义头文件,请和上面的文件保存在同一文件夹。代码如下:

    /*
      使用前务必阅读以下几点:
        1、c++光标坐标从左上角输出位置(0,0)开始,先列后行,如(10,5)为左数第十列,
     从上往下数第五行;
     2、使用方法:在任意函数(包括自定义函数)中皆可使用,格式为GotoXY(x,y);
     3、要加上#include"GotoXY.h"(注意!!!是引号!!!不是<>!!!说的
     就是->#include"GotoXY.h");
     4、 该文件后缀名为.h,擅自修改后果自负!!! 
     5、本文件作者S_JH330206,转载请声明!!! 
    */ 
    #include<iostream>
    #include<windows.h>
    void GotoXY(int x, int y)  // 移动 
    {
     HANDLE hout;  //屏幕尺寸 变量 
     COORD coord={x,y};  //光标坐标 变量  光标x标  光标y标 
     hout=GetStdHandle(STD_OUTPUT_HANDLE);  //获得屏幕尺寸 
     SetConsoleCursorPosition(hout,coord);  //移动光标 
    }

    看完了,点个赞再走呗❀o( ̄▽ ̄)ブ❀

    展开全文
  • C++小游戏程序.pdf

    2021-09-27 12:49:04
    C++小游戏程序.pdf
  • c++ 小游戏 程序

    2009-04-24 13:55:33
    c++ 小游戏 程序c++ 小游戏 程序
  • C++小游戏,适合一些初学者模仿学习。
  • c++小游戏坦克大战.cpp

    2021-07-14 12:55:54
    c++小游戏坦克大战.cpp
  • c++小游戏..

    2016-05-31 09:54:19
    c++小游戏..
  • C++ 小游戏大全

    千次阅读 多人点赞 2021-05-11 15:05:37
    C++ 小游戏大全 感谢作者的提供! 小游戏列表 龙的传人1.1.2 作者 Evan_song: https://paste.ubuntu.com/p/Nn6CCDtfzC/ 哈利波特1.2.9 作者 Evan_song: https://paste.ubuntu.com/p/cCG3rNVW2D/ 生存游戏1.1.0 ...

    C++ 小游戏大全


    感谢作者的提供!


    小游戏列表

    代码无需下载,可直接复制

    如果你看到了这篇文章,那么请赶快将代码复制下来吧!
    源码再ubuntu上存储的时间只有一年,时间过了就再也看不到了…


    作者:Evan_song http://openjudge.cn/user/944985/in/group-93/

    在这里插入图片描述

    展开全文
  • http://noi.openjudge.cn/ch0103/可以在这上面的题目中的提问找c++小游戏
  • C++小游戏,打飞机代码
  • C++小游戏(3):扫雷.rar

    2020-08-20 16:54:00
    今天给大家分享一个关于扫雷的C++小游戏,本人技术不精,游戏比较简单,如果有什么问题欢迎各位小伙伴们留言。
  • 今天,给大家推荐一个由我自己原创编写的一个C++小游戏,游戏玩法十分简单,适合单人游戏(消遣时间),游戏并没有贴图,能力有限,希望大家见谅。
  • 今天给大家带来一个由我创作的一个C++小游戏,这是一个打飞机的游戏,能力所限,画面比较简单,还请大家见谅。
  • c++小游戏五子棋,带AI,基于qt写的,代码浅显易懂,分为人人对战和人机对战两种模式
  • 菜鸟前路---c/c++小游戏

    万次阅读 多人点赞 2019-01-07 09:15:58
    翻到开学之初写的一些小游戏,陆续给大家发出来,也便提高新手们的编程兴趣。 (在Dev,codeblocks,VC上都能运行) #include&lt;stdio.h&gt; #include&lt;time.h&gt; #include&lt;stdlib.h...

    神奇的c/c++

    翻到开学之初写的一些小游戏,陆续给大家发出来,也便提高新手们的编程兴趣。(已详细注释)
    几个对应头文件需要注意一下,但不必太过恐慌,因为,,,很多,用的时候找需要的即可

    (在Dev,codeblocks,VC上都能运行)

    #include<stdio.h>
    #include<time.h>
    #include<stdlib.h>
    #include<conio.h>
    #include<windows.h>   //下面Sleep()函数的头文件
    #include<mmsystem.h>
    
    void menu()
    {
    	printf("   *****************************\n");
    	printf("   *****************************\n");
    	printf("   ************1.play***********\n");
    	printf("   ************0.exit***********\n");
    	printf("   **********2.chakan***********\n");
    	printf("   *********3.qingkong**********\n");
    	printf("   *****************************\n");
    	printf("请选择:          \n");
    }
    
    void game()
     {
     	system("cls");
     	system ( "color 33" ); //设置颜色
     	FILE *fp;
     	if((fp=fopen("D:\\caishuziyou.txt","a+"))==NULL)
        {
            printf("open file error\n");
            return ;
        }
     	int rand_num=rand()%100;
     	int tmp=0,t=0;
    
     	while(1)
     	{
     		int flag=0;
     		printf("请输入你要猜的数字:");
    		 scanf("%d",&tmp);
    		 if(tmp>rand_num)
    		 {
    		 	printf("猜大了!\n");
    			flag=0;
    	}
    		 if(tmp<rand_num)
    		 {
    		 	printf("猜小了!\n");
    			flag=0;
    	}
    		 if(tmp==rand_num)
    		 {
    		 	printf("正确!恭喜!\n");
    			 printf("共用了%d次\n",t+1);
    
    
    		 FILE *fp;
    fp=fopen("D:\\caishuziyou.txt","w");
    if(fp==NULL)
    {
    	printf("create file failed\n");
    	return ;
    }
    fprintf(fp,"%d",t+1);
    fclose(fp);
    		 break;
    		}
    		if(flag==0) t++;
    
    		printf(" 你再猜:\n");
    	 }
    	printf("\n按任意键返回目录");
    	getch();
    
     }
    
    void menu2()
    {
        system("cls");
        system ( "color B6" ); //设置颜色
        printf("即将登陆系统!!!\n");
        getch();
        for(int t=3;t>=1;t--)
    	{
    	    system("cls");
    		printf("%d",t);
    		Sleep(700);
    		system("cls");
    	}
    }
    
    void chakan()
    {
     	system("cls");
     	system ( "color E0" ); //设置颜色
    
    int t=0;
    FILE*fp;
    if((fp=fopen("D:\\caishuziyou.txt","r"))==NULL)
    {
    	printf("can not to open the file!\n");
    	exit(0);
    }
    while(fscanf(fp,"%d",&t)!=EOF)//若不到文件结尾则继续
    {
    	printf("此玩家共进行了%d次\n",t);
    }
    		printf("\n按任意键返回目录");
    		getch();
    }
    
    void qk()//清空
    {
        FILE *fp;
        system("cls");                        //清屏函数,不管下面是否保存数据,每次输入新数据是屏幕上只能有此次的数据
        system ( "color C0" ); //设置颜色
    	if((fp=fopen("D:\\caishuziyou.txt","w"))==NULL)
        {
            printf("open file error\n");
            return;
        }
        fclose(fp);
        printf("\n按任意键返回!");
        getch();
    }
    
    int main()
    {
     	int input=0;
     	srand((unsigned)time(NULL));
    	do{
    //while(1)
    //{
    	system("cls");
    	 	menu();
     //	printf("请选择:");
     		scanf("%d",&input);
     		switch(input)
     		{
     			case 1:
                   menu2();
     				game();
     				break;
     			case 2:
    			 	chakan();
    				 break;
                case 3:
                    qk();
                    break;
     			case 0:
     				exit(0);
     				break;
     			default:printf("输入错误!请重新输入!");
    		 }
    //}
    	 	}while(input);
    	return 0;
    }
    
    

    C语言里比较重要的知识也就文件、指针、链表、结构体和数组了,本文用的文件

    希望大家能将知识化为己用。。。

    相关的还有:
    菜鸟前路—c/c++小程序
    菜鸟前路—java小游戏的实现(一)
    c/c++小游戏

    展开全文
  • 今天给大家带来有我原创的游戏作品C++小游戏(4):做最后的胜利者有兴趣的小伙伴可以试试看,若有什么问题,欢迎大家留言
  • http://noi.openjudge.cn/ch0103/可以在这上面的题目中的提问找c++小游戏
  • c++小游戏源码与程序

    2011-07-24 13:44:31
    c++小游戏源码与程序, 非常入门级的小游戏, 挺适合新人的
  • C++小游戏-扫雷

    千次阅读 多人点赞 2020-12-10 19:42:47
    目录前言一、扫雷游戏模式二、代码实现1.绘制地图场景2.鼠标点击3.递归4.初始化游戏5.main总结及运行 前言 提示:本文是基于easyX图形库实现的,还有部分功能可以添加,仅适合新手参考。 提示:以下是本篇文章正文...


    前言

    提示:本文是基于easyX图形库实现的,还有部分功能可以添加,仅适合新手参考。


    提示:以下是本篇文章正文内容,下面案例可供参考

    一、扫雷游戏模式

    在确定大小的矩形雷区中随机布置一定数量的地雷,玩家需要尽快找出雷区中的所有不是地雷的方块,而不许踩到地雷。
    游戏的基本操作包括左键单击和右键单击。其中左键用于打开安全的格子,推进游戏进度;右键用于标记地雷,以辅助判断。
    左键单击:在判断出不是雷的方块上按下左键,可以打开该方块。如果方块上出现数字,则该数字表示其周围3×3区域中的地雷数(一般为8个格子,对于边块为5个格子,对于角块为3个格子。所以扫雷中最大的数字为8);如果方块上为空(相当于0),则可以递归地打开与空相邻的方块;如果不幸触雷,则游戏结束。
    右键单击:在判断为地雷的方块上按下右键,可以标记地雷(显示为小红旗)。重复一次或两次操作可取消标记。

    二、代码实现

    1.绘制地图场景

    根据每一块地区的数据进行图形输出。

    代码如下(示例):

    void drawmap(int map[][12],IMAGE *img)
    {
        int i, j;
        for (i = 1; i <= 10; i++)
        {
            for (j = 0; j <= 10; j++)
            {
                int x = 50 * (i - 1);//得到位置
                int y = 50 * (j - 1);
                if (map[i][j]>25)
                {
                    putimage(x, y, &img[9]);//标记flag
                }
                else
                {
                    switch (map[i][j])
                    {
                    case 9:
                        putimage(x, y, &img[11]);//输出图片雷
                        break;
                    case 10:
                        putimage(x, y, &img[0]);//0
                        break;
                    case 11:
                        putimage(x, y, &img[1]);//1
                        break;
                    case 12:
                        putimage(x, y, &img[2]);//2
                        break;
                    case 13:
                        putimage(x, y, &img[3]);//3
                        break;
                    case 14:
                        putimage(x, y, &img[4]);//4
                        break;
                    case 15:
                        putimage(x, y, &img[5]);//5
                        break;
                    case 16:
                        putimage(x, y, &img[6]);//6
                        break;
                    case 17:
                        putimage(x, y, &img[7]);//7
                        break;
                    case 18:
                        putimage(x, y, &img[8]);//8
                        break;
                    default:
                        putimage(x, y, &img[10]);//地图
                        break;
                    }
                }
            }
        }
    }
    

    2.鼠标点击

    鼠标左键点击翻开格子,右键点击标记flag,再次点击可以进行取消。
    sum记录翻开格子的数量,点击后对每个位置的数据进行加减操作。

    代码如下(示例):

    int mousedown(int map[][12])
    {
        MOUSEMSG m;    //定义鼠标消息变量
        while (1)
        {
            //获取鼠标消息
            m = GetMouseMsg();
            int mi = m.x / 50 + 1;
            int mj = m.y / 50 + 1;
    
            //判断鼠标消息
            switch (m.uMsg)
            {
            case WM_LBUTTONDOWN:
                if (map[mi][mj] > 9)    //已翻开的情况
                {
                    continue;
                }
                if (map[mi][mj] == 0)   //如果点击为0,则翻开一片。
                {
                    //使用递归函数
                    swap(map, mi, mj);
                }
                else
                {
                    map[mi][mj] += 10;
                    sum += 1;
                }
                return  map[mi][mj];
                break;
            case WM_RBUTTONDOWN:
                if (map[mi][mj] > 9&& map[mi][mj] < 25)    //已翻开的情况
                {
                    continue;
                }
                if (map[mi][mj] > 25)       //再次点击取消flag
                {
                    map[mi][mj] -= 30;
                }
                else
                {
                    map[mi][mj] += 30;
                }
                return  map[mi][mj];
                break;
            }
        }
    }
    

    3.递归

    当我们点到为0的地区时,将会打开周围的部分地区,外围为非0数或到达边界,内部为0.
    如图:
    在这里插入图片描述

    代码如下(示例):

    void swap(int map[][12],int mi,int mj)
    {
        map[mi][mj] = 10;
        sum += 1;
        for (int i = mi - 1; i <= mi + 1; i++)
        {
            for (int j = mj - 1; j <= mj + 1; j++)
            {
                //数组下标不能越界
                if (i >= 1 && i <= 10 && j >= 1 && j <= 10)
                {
                    //翻开的只能是数字
                    if (map[i][j] < 9)
                    {
                        //如果为0,则进行递归。
                        if (map[i][j] == 0)
                        {
                            swap(map, i, j);
                        }
                        else
                        {
                            map[i][j] += 10;
                            sum += 1;
                        }
                    }
                }
            }
        }
    }
    

    4.初始化游戏

    代码如下(示例):

    void startgame()
    {
        initgraph(500, 500);    //初始化地图500x500
        int map[12][12] = { 0 };
        int i,j,m,n;
        //随机函数种子
        srand((unsigned int)time(NULL));
        //随机生成10个雷
        for (n = 0; n < 10;)
        {
            i = rand() % 10 + 1;    //[1,10]
            j = rand() % 10 + 1;
            if (map[i][j] == 0)     //排除本来就有雷的情况
            {
                map[i][j] = -1;     //-1表示有雷
                n++;
            }
        }
        //产生数字
        for (i = 1; i <= 10; i++)
        {
            for (j = 1; j <= 10; j++)
            {
                //排除是雷的情况
                if (map[i][j] != -1)
                {
                    for (m = i - 1; m <= i + 1; m++)    //判断周围是否有雷
                    {
                        for (n = j - 1; n <= j + 1; n++)
                        {
                            if (map[m][n] == -1)
                            {
                                map[i][j]++;
                            }
                        }
                    }
                }
            }
        }
        IMAGE img[12];              //定义图片变量
        loadimage(&img[0], "E:\\C++ project\\minesweeping\\0.jpg", 50, 50);
        loadimage(&img[1], "E:\\C++ project\\minesweeping\\1.gif", 50, 50);//加载图片
        loadimage(&img[2], "E:\\C++ project\\minesweeping\\2.gif", 50, 50);
        loadimage(&img[3], "E:\\C++ project\\minesweeping\\3.gif", 50, 50);
        loadimage(&img[4], "E:\\C++ project\\minesweeping\\4.gif", 50, 50);
        loadimage(&img[5], "E:\\C++ project\\minesweeping\\5.gif", 50, 50);
        loadimage(&img[6], "E:\\C++ project\\minesweeping\\6.gif", 50, 50);
        loadimage(&img[7], "E:\\C++ project\\minesweeping\\7.gif", 50, 50);
        loadimage(&img[8], "E:\\C++ project\\minesweeping\\8.gif", 50, 50);
        loadimage(&img[9], "E:\\C++ project\\minesweeping\\flag.gif", 50, 50);
        loadimage(&img[10], "E:\\C++ project\\minesweeping\\地图.gif", 50, 50);
        loadimage(&img[11], "E:\\C++ project\\minesweeping\\雷.gif", 50, 50);
        while (1)
        {
            drawmap(map, img);
            //点到地雷
            if (mousedown(map)==9)
            {
                sum = 0;    //重置判断变量
                drawmap(map, img);
                MessageBox(hwnd,"你踩到雷了!","Game Over",MB_OK);
                return;
            }
            //成功完成游戏
            if (sum == 90)
            {
                sum = 0;    //重置判断变量
                drawmap(map, img);
                MessageBox(hwnd, "你成功完成了游戏!", "Game Over", MB_OK);
                return;
            }
        }
    }
    

    5.main

    代码如下(示例):

    #include<iostream>
    #include<time.h>
    #include<graphics.h>        //图形库头文件 easyx
    #include <conio.h>          //调用_getch函数
    using namespace std;
    HWND hwnd;
    int sum = 0;//用于表示目前已经点开的格子数
    //声明函数
    void drawmap(int map[][12], IMAGE* img);
    int mousedown(int map[][12]);
    void swap(int map[][12], int mi, int mj);
    //初始化游戏
    
    //绘制地图
    
    //鼠标点击
    
    //递归函数
    
    int main()
    {
        while (1)
        {
            startgame();
            if (MessageBox(hwnd, "再来一次", "结束游戏", MB_YESNO)==IDNO)
                break;
        }
        //_getch();                //防止闪屏
        closegraph();
        return 0;
    }
    
    

    总结及运行

    提示:本代码仅供参考,编译器为visual studio
    图片资源可以在网上找找,将其放到对应的目录即可。
    运行结果如图:
    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • 这款C++小游戏的功能主要还是跟Windows的扫雷功能差不多,选项、统计数据等功能一应俱全,其中游戏时需注意,一定要按下“h”看帮助才能知道该如何玩这个版本的扫雷。玩的时候一定记住,全屏!全屏!!全屏!!!
  • C++小游戏数字炸弹

    千次阅读 多人点赞 2021-01-01 08:58:09
    这个小游戏代码是我学了半年编程打出开的第一个小游戏代码,游戏内无void以及goto. 适合给新手当一个模板。 二.代码 #include<iostream> #include<ctime> #include<windows.h> using namespace ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 113,820
精华内容 45,528
关键字:

c++小游戏

c++ 订阅