友情提示:vc++6.0需要加装easyx库,这是一个图形库(个人认为这个库不错,太适合新手做一些有意思的效果),具体教程见前文,如果没有添加的话,是不能编译运行通过的,也就见不到效果。

#include

#include

#include

#include

#define KEY_DOWN(vk_c)(GetAsyncKeyState(vk_c)&0x8000)

typedef struct position{

int x;

int y;

}posType;

int index;//同色小球的个数

void init();//初始化游戏窗口

void gamebegin();//游戏开始界面

void gameplay();//玩游戏的具体过程

void close();//结束游戏,释放资源

void drawcursor(posType cur,COLORREF c1);//绘制光标

void drawtime(int sec);//绘制时间

void drawscore(int score);//绘制分数

void getsamecolorballs(posType cur,COLORREF c1);//获得光标所在位置周围的同色小球,计算同色小球的个数,并存入数组

int isValid(posType cur,COLORREF c1);//判断同色小球是否合法

void ballsfall();//小球下落

COLORREF colorArr[6]={RGB(200,0,0),RGB(0,200,0),RGB(0,0,200),RGB(200,200,0),RGB(200,0,200),RGB(0,200,200)};

posType cur;//定义当前光标位置

posType ballsArr[180];//同色小球坐标

void main()

{

init();//初始化游戏窗口

gamebegin();//游戏开始界面

gameplay();//玩游戏的具体过程

close();//结束游戏,释放资源

}

void init()

{

initgraph(1000,700);

}

void close()

{

getch();

closegraph();

}

void gamebegin()

{

//绘制游戏边框

setlinecolor(RGB(50,50,50));

setlinestyle(PS_SOLID,10);

rectangle(255,45,745,655);

//绘制小球

srand((unsigned)time(NULL));

setlinestyle(PS_SOLID,1);

for(int x=280;x<740;x+=40)

{

for(int y=70;y<650;y+=40)

{

COLORREF c1=colorArr[rand()%6];

setfillcolor(c1);

setlinecolor(c1);

fillcircle(x,y,18);

}

}

//绘制移动光标

cur.x=480;

cur.y=390;

drawcursor(cur,RGB(255,255,255));

//绘制时间drawtime(30);

//绘制分数drawscore(0);

}

void gameplay()

{

int score=0;

for(int i=300;i>0;i--)

{

if(i%10==0)

{

drawtime(i/10);

}

if(KEY_DOWN(VK_UP)&&cur.y>70)

{

drawcursor(cur,BLACK);//绘制黑光标

cur.y-=40;//移动当前光标位置

drawcursor(cur,WHITE);//绘制白光标

}

else if(KEY_DOWN(VK_DOWN)

&&cur.y<630)

{

drawcursor(cur,BLACK);//绘制黑光标

cur.y+=40;//移动当前光标位置

drawcursor(cur,WHITE);//绘制白光标

}

else if(KEY_DOWN(VK_LEFT)

&&cur.x>280)

{

drawcursor(cur,BLACK);//绘制黑光标

cur.x-=40;//移动当前光标位置

drawcursor(cur,WHITE);//绘制白光标

}

else if(KEY_DOWN(VK_RIGHT)

&&cur.x<720)

{

drawcursor(cur,BLACK);//绘制黑光标

cur.x+=40;//移动当前光标位置

drawcursor(cur,WHITE);//绘制白光标

}

else if(KEY_DOWN(VK_RETURN)

||KEY_DOWN(VK_SPACE))

{

//获得光标所在位置周围的同色小球,计算同色小球的个数,并存入数组

getsamecolorballs

(cur,getpixel(cur.x,cur.y));

//同色小球消失一段时间(将数组中元素置黑)

if(index>1)

{

for(int k=0;k

{

setfillcolor(BLACK);

setlinecolor(BLACK);

fillcircle(ballsArr[k].x,ballsArr[k].y,18);

}

//小球下落

Sleep(500);

ballsfall();

score+=index;

drawscore(score);

}

index=0;

}

Sleep(100);

}

cleardevice();

settextcolor(RGB(255,0,0));

settextstyle(80, 0, _T("黑体"));

char s[] = "Game over";

outtextxy(300, 300, s);

drawscore(score);

Sleep(500);

}

void drawcursor(posType cur,COLORREF c1)

{

setlinecolor(c1);

rectangle(cur.x-20,cur.y-

20,cur.x+20,cur.y+20);

}

void drawtime(int sec)

{

char str[30];

settextcolor(RGB(255,255,0));

settextstyle(25, 0, _T("黑体"));

sprintf(str,"剩余时间: %2d s",sec);

outtextxy(20, 50, str);

}

void drawscore(int score)

{

char str[30];

settextcolor(RGB(255,0,0));

settextstyle(25, 0, _T("黑体"));

sprintf(str,"分数: %d",score);

outtextxy(20, 550, str);

}

void getsamecolorballs(posType cur,COLORREF c1)

{

ballsArr[index].x=cur.x;

ballsArr[index].y=cur.y;

index++;

posType tempos;

for(int k=0;k<4;k++)

{

switch(k){

case 0:

tempos.x=cur.x;

tempos.y=cur.y-40;

break;//上

case 1:

tempos.x=cur.x;

tempos.y=cur.y+40;

break;//下

case 2:

tempos.x=cur.x-40;

tempos.y=cur.y;

break;//左

case 3:

tempos.x=cur.x+40;

tempos.y=cur.y;

break;//右

}

if(isValid(tempos,c1))

{

getsamecolorballs(tempos,c1);

}

}

}

int isValid(posType cur,COLORREF c1)

{

if(getpixel(cur.x,cur.y)!=c1)

{

return 0;

}

else

{

for(int k=0;k

{

if(ballsArr[k].x==cur.x

&&ballsArr[k].y==cur.y)

{

return 0;

}

}

return 1;

}

}

void rank()

{

int i,j;

posType temp;

for(i=0;i

{

for(j=0;j

{

if(ballsArr[j].y>ballsArr[j+1].y)

{

temp=ballsArr[j];

ballsArr[j]=ballsArr[j+1];

ballsArr[j+1]=temp;

}

}

}

}

void ballsfall()

{

rank();

for(int i=0;i

{

for(int k=ballsArr[i].y;k>70;k-=40)

{

setfillcolor(getpixel(ballsArr[i].x,k-40));          setlinecolor(getpixel(ballsArr[i].x,k-40));        fillcircle(ballsArr[i].x,k,18);

}

COLORREF c1=colorArr[rand()%6];

setfillcolor(c1);

setlinecolor(c1);

fillcircle(ballsArr[i].x,70,18);

}

}

消消乐android 源代码,【消消乐】源代码相关推荐

  1. win7 android双系统,联想乐Pad平板电脑发布:Win7/Android双系统

    Win7之家( www.win7china.com):联想乐Pad平板电脑发布:Win7/Android双系统 在众多Sandy Bridge处理器平台新本发布之后,联想也在今天正式发布了旗下首款平板 ...

  2. Unity 游戏皇家消消乐Android版

    下载地址工程 先来看一下运行之后的效果图 素材包大家可以下载工程,工程里面都有!会需要导入一个iTween的插件 场景的搭建我就不做过多的介绍了,每个人有自己喜欢的场景! 看一下!CameContro ...

  3. android 星星流逝动画,Android仿开心消消乐大树星星无限循环效果

    啥都不说先上效果图,这个是我项目里的效果: 下面的是我抽取出来的 demo 适配啥的我基本上都做好了没做其他的 ok 下面 说一下思路把 首先 说一下原理 我是使用bitmap 创建两张图 一开始的时 ...

  4. 乐视2支不支持html,乐2有NFC吗 乐视手机2支持NFC功能吗?

    虽然绝大多数消费者在购机的时候不会考虑一款智能手机是否支持NFC功能,但是依旧有不少搞机者对乐2是否支持NFC产生了一定的兴趣.我们知道上一代乐1和乐1s均不支持这一功能,那么全新一代乐2会支持这一功 ...

  5. Canvas 实现刮刮乐 js实现刮刮乐

    Canvas 实现刮刮乐 js实现刮刮乐 **思路: (1)首先需要一个盒子定位,确定刮刮乐区域想要放在哪里 (2)定位盒子里有个放内容的盒子,也就是放奖品的 (3)用一个画布(canvas)把上面的 ...

  6. ANDROID PAD版本号 PHONE版本号 源代码有什么 差别?

    ANDROID PAD版本号 PHONE版本号 源代码有什么 差别? 直接把frameworks/base/core/res/res/values/config.xml里面的<bool name ...

  7. 知足而乐,不知足亦乐

    知足而乐,不知足亦乐 前几天晚上,有一个佛教的朋友与我聊天时,在帮我解读人生真谛时,偶然谈到了知足而乐这个词语.我望着这个词语沉思了一会儿,突然有许多感悟.我在思考,知足可以得到快乐,不知足也能得到快 ...

  8. 华容道源代码android,基于Android的华容道游戏的源代码

    基于Android的华容道游戏的源代码: 相关文件下载在Linux公社的1号FTP服务器里,下载地址: 用户名:www.linuxidc.com 密码:www.muu.cc 在 2011年LinuxI ...

  9. 乐视账号服务器关闭,乐视手机重置后无法登录账号 官方给出解决方案

    [TechWeb报道]1月31日消息,近日有不少使用乐视手机的用户一直反馈"重置手机"之后无法登陆乐视手机账号,并且无法进入系统,引发了众多用户疯狂在微博吐槽.现在最新消息,乐视手 ...

  10. 开心消消乐java下载_开心消消乐下载_开心消消乐下载最新iPhone版-太平洋下载中心...

    <开心消消乐>,以三消游戏的方式,让国民连接在一起!2021年,8亿玩家的共同选择! [App Store下载量榜首,多次精选推荐] 全民级三消游戏<开心消消乐>不仅是中国区A ...

最新文章

  1. SAP物料类型与物料库存信息在哪个表中
  2. java filereader类_Java FileReader类
  3. Java领域的对象如何传输-基于 socket 进行对象传输
  4. python入门学习的第三天
  5. 将一个list转化成一颗树的输出方法
  6. 计算机基础类报刊,全国“xx杯”计算机应用基础类说课大赛优秀作品:图文表混排-制作感恩报刊说课课件...
  7. 金电联行程小龙:企业数字化转型的目标、决策与实践
  8. 计算机网络原基站,一种计算机网络工程用移动基站的制作方法
  9. 分量入度hdu 3836 Equivalent Sets
  10. windows server 2003 IIS6.0下session问题
  11. 西藏拉姆拉错:蓝蓝的湖水
  12. Machine learning system design - Data for machine learning
  13. 15.7 项目:多线程 XKCD 下载程序
  14. 一元函数积分学2_不定积分的分部积分法
  15. python+appium自动化测试-获取短信+图片验证码
  16. java hid 协议,USB HID协议问题
  17. linux输入命令直接跳转到指定目录
  18. abb机器人指令手册_ABB机器人实战技巧超强合集
  19. Windows系统常用后缀名大全
  20. 2022 IDC报告出炉 思腾合力一举拿下全国服务器市场双项榜单

热门文章

  1. 新版win10的恢复语言栏设置
  2. 总结 : 安卓开发大作业废话集合
  3. 空间点集的三角剖分工具——四面体生成器(TetGen)和三维三角剖分包(CGAL)
  4. 51单片机体系结构初步分析
  5. Stacked Hourglass Networks - 堆叠沙漏网络结构详解
  6. cubieboard
  7. java判断日期是当天_Java判断日期为昨天 今天 明天
  8. 2022年第二届长三角高校数学建模竞赛B题经验、论文、代码展示
  9. 如何使用KALI攻击“恶意网站“实验
  10. 高德GIS地图动态显示打点数据