是挺久以前做的一个东西,突然想到放上来分享一下俺的拙作,纯原创。

利用二维数组对齐进行划分,并讲状态分为被侵略与未被侵略两种状态来记录。 在旧版的easyX可以运行。

源码及exe下载

头文件:

1 #include <graphics.h>

2 #include <iostream>

 3 const int color_num=6;
 4 static int steps=14;
 5 static int List[10][10];//绘图数组
 6 static int vid[10][10];//存储状态数组
 7 static char in[3];
 8 static int a=0;
 9 class color_flood
10 {
11      void Image1(int i,int j);//被侵略方块图像绘制
12      void Image2(int i,int j);//未被侵略图像绘制
13 public:
14      color_flood();//数据初始化
15      void Grph();//图像初始化
16      void Update();//对玩家的操作的相应更新
17      int Iswin();
18      void chooseimage();//玩家做出操作的相应
18      void Output();//调用绘图函数

20};

.cpp文件:

0 #include "FLOOD_IT_v1.0.h"

1 color_flood::color_flood()

 2     {
 3         memset(vid,0,sizeof(vid));
 4         memset(List,0,sizeof(List));
 5         randomize();
 6         for(int i=1;i<9;++i)
 7             for(int j=1;j<9;++j)
 8                 List[i][j]=random(6)+1;//随机颜色    
 9 
10         vid[1][1]=1;
11         a=List[1][1];
12         steps=14;
13     }
 1 void color_flood:: Grph()
 2     {
 3         memset(vid,0,sizeof(vid));
 4         memset(List,0,sizeof(List));
 5         randomize();
 6         for(int i=1;i<9;++i)
 7             for(int j=1;j<9;++j)
 8                 List[i][j]=random(6)+1;//随机颜色    
 9 
10         vid[1][1]=1;
11         a=List[1][1];
12         steps=14;
13         initgraph(800,600);
14         setbkcolor(WHITE);
15         setcolor(BLACK);
16          setlinestyle(PS_DASH,1,6);
17         rectangle(143,148,428,432);
18         rectangle(30,100,770,570);
19         line(560,100,560,569);
20         setfillstyle(DARKGRAY);
21         bar(600,120,730,200);
22         rectangle(600,120,730,200);
23         setlinestyle(PS_DASH,1,1);
24         line(560,230,770,230);
25         line(560,360,770,360);
26         line(560,450,770,450);
27         setfont(25,0,"Arial Black");
28         outtextxy(620,250,"STEPS:");
29         //outtextxy(620,380,"SCORE:");
30         setfontbkcolor(DARKGRAY);
31         outtextxy(610,140,"NEW GAME");
32         setfont(55,0,"Arial Black");
33         outtextxy(100,40,"FLOOD IT!"); 

34 }

 1     void color_flood:: Update()
 2     {
 3         for(int i=1;i<9;++i)
 4         {    for(int j=1;j<9;++j)
 5             {
 6                 if(vid[i][j]==1)
 7                     continue;
 8                 else
 9                 {
10                     if((vid[i][j-1]==1||vid[i-1][j]==1||vid[i][j+1]==1||vid[i+1][j]==1)&&List[i][j]==a)
11                         vid[i][j]=1;
12                 }
13             }
14         }
15     }
 1 void color_flood:: Image1(int i,int j)
 2     {
 3         switch(a)
 4         {
 5         case 1:{setfillstyle(RED);break;}
 6         case 2:{setfillstyle(BLUE);break;}
 7         case 3:{setfillstyle(GREEN);break;}
 8         case 4:{setfillstyle(YELLOW);break;}
 9         case 5:{setfillstyle(MAGENTA);break;}
10         case 6:{setfillstyle(BROWN);break;}
11         }
12         bar(i*35+145,j*35+150,(i+1)*35+145,(j+1)*35+150);

13         }

 1     void color_flood:: Image2(int i,int j)
 2     {
 3         switch(List[i+1][j+1])
 4         {
 5         case 1:{setfillstyle(RED);break;}
 6         case 2:{setfillstyle(BLUE);break;}
 7         case 3:{setfillstyle(GREEN);break;}
 8         case 4:{setfillstyle(YELLOW);break;}
 9         case 5:{setfillstyle(MAGENTA);break;}
10         case 6:{setfillstyle(BROWN);break;}
11         }
12         bar(i*35+145,j*35+150,(i+1)*35+145,(j+1)*35+150);
13     }
 1     void color_flood:: Output()
 2     {
 3         for(int i=1;i<9;++i)
 4         {
 5             for(int j=1;j<9;++j)
 6             {
 7                 if(vid[i][j]==0)
 8                     Image2(i-1,j-1);
 9                 else
10                     Image1(i-1,j-1);
11             }
12         }
13 
14         //*str=steps;

15         }

 1 int color_flood:: Iswin()
 2     {
 3         int n=0;
 4         for(int i=1;i<9;++i)
 5             for(int j=1;j<9;++j)
 6                 if(vid[i][j]==1)
 7                 {
 8                     n++;
 9                 }
10             return n;
11     }
1 void color_flood:: chooseimage() 

2     {
 3         for(int i=0;i<6;i++)
 4         {
 5                 switch(i)
 6                 {
 7                 case 0:{setfillstyle(RED);break;}
 8                 case 1:{setfillstyle(BLUE);break;}
 9                 case 2:{setfillstyle(GREEN);break;}
10                 case 3:{setfillstyle(YELLOW);break;}
11                 case 4:{setfillstyle(MAGENTA);break;}
12                 case 5:{setfillstyle(BROWN);break;}
13                 }
14             bar(90+i*40+i*30,490,130+i*40+i*30,530);
15         }
16         MOUSEMSG msg;
17         msg=GetMouseMsg();
18         while(1)
19         {
20             if(MouseHit!=0)
21             {
22                 if(msg.uMsg==WM_LBUTTONUP)
23                 {
24         
25                     if(msg.y>490&&msg.y<530)
26                     {
27                         if(msg.x>90&&msg.x<130)
28                             {a=1;--steps;}
29                         if(msg.x>160&&msg.x<200)
30                             {a=2;--steps;}
31                         if(msg.x>230&&msg.x<270)
32                             {a=3;--steps;}
33                         if(msg.x>300&&msg.x<340)
34                             {a=4;--steps;}
35                         if(msg.x>370&&msg.x<410)
36                             {a=5;--steps;}
37                         if(msg.x>440&&msg.x<480)
38                             {a=6;--steps;}
39                     }
40                     if(msg.x>600&&msg.x<730&&msg.y>120&&msg.y<200)
41                     {
42                         Grph();
43                     }
44                     msg.mkLButton=0;        
45 
46                 }
47 
48                 break;
49             }
50             else
51                 continue;
52         }
53     }

1 int main()

 2     {
 3         color_flood img;
 4         img.Grph();
 5         int b;
 6         while(1)
 7         {        
 8             img.Fre();
 9             img.Output();
10             img.chooseimage();
11             img.Update();
12             if(steps==-1)
13             {
14                 setbkcolor(WHITE);
15                 setfont(30,0,"Arial Black");
16                 outtextxy(100,300,"You Lose!  Press any key to New Game");
17                 getch();
18                 img.Grph();
19             }
20             b=img.Iswin();
21             if(b==64)
22             {
23                 img.Output();
24                 setbkcolor(WHITE);
25                 setfont(30,0,"Arial Black");
26                 outtextxy(100,300,"You Win! Press any key to New Game");
27                 getch();
28                 img.Grph();
29             }
30         }
31         getch();
32         closegraph();
33         return 0;
34     }

转载于:https://www.cnblogs.com/xecet/archive/2012/04/06/2435417.html

基于easyX的颜色侵略小游戏相关推荐

  1. 【精选】基于EasyX的贪吃蛇小游戏

    文章目录 前言 一.项目环境 1.Visual Studio 2019 2.EasyX 20200902 二.运行效果展示 0.加载游戏 1.主菜单 2.游戏设置 3.游戏说明 4.生存模式 5.无尽 ...

  2. 基于Stm32f407 的贪吃蛇小游戏【正点原子-探索者开发板】

    基于单片机stm32f407的单机小游戏----贪吃蛇小游戏 1.介绍 这是我花一个星期完成的一个简单地单机贪吃蛇小游戏项目,芯片是stm32f407,项目是基于正点原子-探索者开发板完成的,有需要的 ...

  3. 基于STM32的贪吃蛇小游戏

    基于STM32的贪吃蛇小游戏 初学32一个月,学的并不多,便想着做一个贪吃蛇小游戏,因为有51单片机做贪吃蛇的经验,所以实现出来并不困难. 作品简介 游戏面版将在4.3寸480*800)液晶上显示,初 ...

  4. 基于Java+Swing实现雷电小游戏

    基于Java+Swing实现雷电小游戏 一.系统介绍 二.功能展示 三.其他系统 四.获取源码 一.系统介绍 基于java的雷电游戏基本功能包括:敌方飞机随机飞行.我方飞机手动控制飞行,射击比拼,游戏 ...

  5. java 2048游戏_JAVA2048游戏 本课程设计是基于java语言的2048小游戏设计 联合开发网 - pudn.com...

    JAVA2048游戏 所属分类:游戏 开发工具:Java 文件大小:789KB 下载次数:4 上传日期:2020-11-23 10:57:11 上 传 者:滴滴滴大萌 说明:  本课程设计是基于jav ...

  6. 【JAVA程序设计】基于JAVA的坦克大战小游戏--入门级小游戏

    基于JAVA的坦克大战小游戏--入门级小游戏 零.项目获取 一.项目简介 二.开发环境 三.游戏玩法 四.运行截图 零.项目获取 获取方式(点击下载):是云猿实战 项目经过多人测试运行,可以确保100 ...

  7. 基于JavaSwing开发吃豆子小游戏 课程设计 大作业源码

    基于JavaSwing开发吃豆子小游戏:   (大作业) 开发环境: Windows操作系统 开发工具: MyEclipse/Eclipse/idea+Jdk 运行效果图: 基于JavaSwing开发 ...

  8. 基于 Vue 制作一个猜拳小游戏

    目录 前言: 项目效果展示: 对应素材: 代码实现思路: 实现代码: 总结: 前言: 在工作学习之余玩一会游戏既能带来快乐,还能缓解生活压力,跟随此文一起制作一个小游戏吧. 描述: 石头剪子布,是一种 ...

  9. 基于JavaSwing开发潜艇大战小游戏 课程设计 大作业源码

    基于JavaSwing开发潜艇大战小游戏:  (大作业) 开发环境: Windows操作系统 开发工具: Eclipse+Jdk 运行效果图: 基于JavaSwing开发潜艇大战小游戏:  (大作业) ...

最新文章

  1. Lagrange equation
  2. 谷歌、亚马逊的顶级GPU被质疑太贵了!这种CPU算法竟然快15倍
  3. Mysql数据库基础系列(二):表结构、键值
  4. java 输入输出头文件_引入的标准头文件与标准输出以及FOR循环
  5. 《JAVA课程设计》实训第四天——《猜猜看》游戏
  6. 理解 ActivityExecutionContextManager
  7. 阿里 BladeDISC 深度学习编译器正式开源
  8. pandas 判断是否等于nan_Python之pandas笔记
  9. 计算机重启是什么原因,电脑自动重启,该怎么办,到底是什么原因,我来详细说明?...
  10. HDU-1232 畅通工程
  11. 分享:TreeFrog 1.1 发布,C++ Web 应用开发框架
  12. 再谈typedef(重点为函数指针)
  13. Maven:IDEA 使用maven 下载源码包
  14. WordPress Tweet Blender插件跨站脚本漏洞
  15. Java中的泛型全解析(一)
  16. 【转载,留作参考】mysql 截取字符串以及mysql update select
  17. 云服务器远程连接的设置方法、安全组设置(外网可访问)
  18. linux控制pwm输出个数,使用PWM控制来实现电压的变化控制
  19. Android第七讲笔记(圆形图片,网络图片,下拉刷新,上拉加载)
  20. chemdraw怎么连接两个结构_怎样在ChemDraw中绘制不定结构

热门文章

  1. day02 pycharm 安装
  2. 真机调试及上线简略流程
  3. 每天一个JavaScript实例-动态省份选择城市
  4. 字符串长度(PHP学习)
  5. 作业自动提示功能设计思路
  6. PPA格式Linux安装,Ubuntu12.04 用PPA安装fcitx和搜狗输入法附加组件Linux版
  7. springmvc限流解决方案
  8. 05-Flutter移动电商实战-dio基础_引入和简单的Get请求
  9. java栈API_Java中的堆栈API——Stack
  10. mysql优化varchar索引_MySQL优化--概述以及索引优化分析