基于easyX的颜色侵略小游戏
是挺久以前做的一个东西,突然想到放上来分享一下俺的拙作,纯原创。
利用二维数组对齐进行划分,并讲状态分为被侵略与未被侵略两种状态来记录。 在旧版的easyX可以运行。
源码及exe下载
头文件:
1 #include <graphics.h>
2 #include <iostream>
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()
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 }
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 }
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 }
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 }
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 }
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 }
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 }
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()
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的颜色侵略小游戏相关推荐
- 【精选】基于EasyX的贪吃蛇小游戏
文章目录 前言 一.项目环境 1.Visual Studio 2019 2.EasyX 20200902 二.运行效果展示 0.加载游戏 1.主菜单 2.游戏设置 3.游戏说明 4.生存模式 5.无尽 ...
- 基于Stm32f407 的贪吃蛇小游戏【正点原子-探索者开发板】
基于单片机stm32f407的单机小游戏----贪吃蛇小游戏 1.介绍 这是我花一个星期完成的一个简单地单机贪吃蛇小游戏项目,芯片是stm32f407,项目是基于正点原子-探索者开发板完成的,有需要的 ...
- 基于STM32的贪吃蛇小游戏
基于STM32的贪吃蛇小游戏 初学32一个月,学的并不多,便想着做一个贪吃蛇小游戏,因为有51单片机做贪吃蛇的经验,所以实现出来并不困难. 作品简介 游戏面版将在4.3寸480*800)液晶上显示,初 ...
- 基于Java+Swing实现雷电小游戏
基于Java+Swing实现雷电小游戏 一.系统介绍 二.功能展示 三.其他系统 四.获取源码 一.系统介绍 基于java的雷电游戏基本功能包括:敌方飞机随机飞行.我方飞机手动控制飞行,射击比拼,游戏 ...
- java 2048游戏_JAVA2048游戏 本课程设计是基于java语言的2048小游戏设计 联合开发网 - pudn.com...
JAVA2048游戏 所属分类:游戏 开发工具:Java 文件大小:789KB 下载次数:4 上传日期:2020-11-23 10:57:11 上 传 者:滴滴滴大萌 说明: 本课程设计是基于jav ...
- 【JAVA程序设计】基于JAVA的坦克大战小游戏--入门级小游戏
基于JAVA的坦克大战小游戏--入门级小游戏 零.项目获取 一.项目简介 二.开发环境 三.游戏玩法 四.运行截图 零.项目获取 获取方式(点击下载):是云猿实战 项目经过多人测试运行,可以确保100 ...
- 基于JavaSwing开发吃豆子小游戏 课程设计 大作业源码
基于JavaSwing开发吃豆子小游戏: (大作业) 开发环境: Windows操作系统 开发工具: MyEclipse/Eclipse/idea+Jdk 运行效果图: 基于JavaSwing开发 ...
- 基于 Vue 制作一个猜拳小游戏
目录 前言: 项目效果展示: 对应素材: 代码实现思路: 实现代码: 总结: 前言: 在工作学习之余玩一会游戏既能带来快乐,还能缓解生活压力,跟随此文一起制作一个小游戏吧. 描述: 石头剪子布,是一种 ...
- 基于JavaSwing开发潜艇大战小游戏 课程设计 大作业源码
基于JavaSwing开发潜艇大战小游戏: (大作业) 开发环境: Windows操作系统 开发工具: Eclipse+Jdk 运行效果图: 基于JavaSwing开发潜艇大战小游戏: (大作业) ...
最新文章
- Lagrange equation
- 谷歌、亚马逊的顶级GPU被质疑太贵了!这种CPU算法竟然快15倍
- Mysql数据库基础系列(二):表结构、键值
- java 输入输出头文件_引入的标准头文件与标准输出以及FOR循环
- 《JAVA课程设计》实训第四天——《猜猜看》游戏
- 理解 ActivityExecutionContextManager
- 阿里 BladeDISC 深度学习编译器正式开源
- pandas 判断是否等于nan_Python之pandas笔记
- 计算机重启是什么原因,电脑自动重启,该怎么办,到底是什么原因,我来详细说明?...
- HDU-1232 畅通工程
- 分享:TreeFrog 1.1 发布,C++ Web 应用开发框架
- 再谈typedef(重点为函数指针)
- Maven:IDEA 使用maven 下载源码包
- WordPress Tweet Blender插件跨站脚本漏洞
- Java中的泛型全解析(一)
- 【转载,留作参考】mysql 截取字符串以及mysql update select
- 云服务器远程连接的设置方法、安全组设置(外网可访问)
- linux控制pwm输出个数,使用PWM控制来实现电压的变化控制
- Android第七讲笔记(圆形图片,网络图片,下拉刷新,上拉加载)
- chemdraw怎么连接两个结构_怎样在ChemDraw中绘制不定结构