C++ 别踩白块小游戏练习
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <easyx.h>
#include <graphics.h>
#include <time.h>
#include <tchar.h>
int map[];//数组保存的是黑块
int n = ; //
void init()//初始化黑方块区域
{
for (int i = ; i < ; i++)
{ map[i] = rand() % ; //取随机值0 - 3;
} }
void draw()//贴背景图片
{
BeginBatchDraw();
cleardevice();//把之前的画板清楚
setlinecolor(RED);//设置颜色
setfillcolor(WHITE);
for (int i = ; i < ; i++)
{
for (int j = ; j < ; j++)
{
//绘制白色矩形
fillrectangle(j * , i * , (j + ) * , (i + ) * );
}
}
//
setfillcolor(BLACK);
for (int i = ; i < ; i++) //每一行需要填充的方块
{
fillrectangle(map[i] * , i * , (map[i] + ) * , (i + ) * ); //填充矩形 定位要填充的矩形的的左上角坐标和右下角坐标 } EndBatchDraw(); //结束批量绘图,把中间的内容统一绘制到界面
}
int i; //x轴坐标
int j; //y轴坐标
int play()// 开始玩耍 用鼠标点击方块
{
MOUSEMSG msg = GetMouseMsg();//鼠标消息初始化
switch (msg.uMsg)
{
case WM_LBUTTONDOWN: //如果鼠标消息按下左键 进入循环
i = msg.y / ; //判断鼠标的位置相对于游戏区的位置
j = msg.x / ; //判断鼠标的位置相对于游戏区的位置
if (map[] == j && i == ) //判断鼠标点击的位置是不是黑色方块 i==3 判断鼠标点击的位置是不是最下面一行,最下面一行为3
{
for (int a = ; a > ; a--)//使用循环改变方块的值
{
map[a] = map[a - ]; }
map[] = rand() % ;//最上面一排的方块重新赋值 n++;
}
else
return ;
break;
}
return ;
}
int main()
{ initgraph( * , * );//初始化界面
srand((unsigned)time(NULL)); //随机数
init();
while ()
{
draw();
if (play() == )
{
TCHAR str[]; //
wsprintf(str, _T("总共消除了%d个方块"), n);
if (MessageBox(GetHWnd(), str, _T("游戏结束,是否在来一次"), MB_YESNO) == IDYES) //判断判断游戏是否需要继续
{ init(); //重新初始化方块随机位置
draw(); //重新初始化画板
n = ;
continue;
}
else
break; } }
closegraph();//关闭绘图界面
return ;
}
C++ 别踩白块小游戏练习的更多相关文章
- JS实现别踩白块小游戏
最近有朋友找我用JS帮忙仿做一个别踩白块的小游戏程序,但他给的源代码较麻烦,而且没有注释,理解起来很无力,我就以自己的想法自己做了这个小游戏,主要是应用JS对DOM和数组的操作. 程序思路:如图:将游 ...
- jquery 简单的别踩白块小游戏
写写简单的东西,效果如图: 1.html代码 <div class="warp"> <div class="title"> <h3 ...
- 用javascript做别踩白块游戏1
初学Javascript做的一个别踩白块小游戏,代码简陋,如下: <!DOCTYPE html> <html> <head> <!-- 禁用缩放功能 --&g ...
- jquery之别踩白块游戏的实现
转载请注明出处http://www.cnblogs.com/Wxtrkbc/p/5687112.html 前端学习要告一段落了,也没机会写什么像样的东西,然后无意中想起某人以前给我玩了一下别踩白块的游 ...
- ios-高仿别踩白块游戏的实现
先看下效果图片 前几天看到一个游戏叫别踩白块,下载量还挺大几百万了都,下载下来玩了玩看了看,这个游戏还挺简单的.俗话说想一千遍,一万遍不如动手做一遍来的实在.昨晚以及今天白天闲的没事就开搞了,下午六点 ...
- cocos2dx游戏开发——别踩白块学习笔记(二)——经典模式的实现
一.创建GameScene以及GameLayer 就是简单创建一个Scene而已,在此就不多说啦~,可以参照我的打飞机的学习笔记(2). 二.添加一个开始栏 很简单,就是调用Block中的create ...
- 用javascript做别踩白块游戏2
这一次做一个好一点的,要求黑块自动下落,且速度逐渐加快 <!DOCTYPE html> <html> <head> <!-- 禁用缩放功能 --> &l ...
- C++用EGE简单实现别踩白块游戏
本项目已开源:https://github.com/wmpscc/AvoidBlank 关于EGE 介绍:EGE(Easy Graphics Engine),是windows下的简易绘图库,是一个类似 ...
- Cocos2d-x 3.2 之 别踩白块(第三篇)
***************************************转载请注明出处:http://blog.csdn.net/lttree************************** ...
随机推荐
- webpack中使用ECharts
npm安装ECharts 引入ECharts 通过 npm 上安装的 ECharts 和 zrender 会放在node_modules目录下.可以直接在项目代码中 require('echarts' ...
- numpy中的ndarray与pandas中的series、dataframe的转换
一个ndarray是一个多维同类数据容器.每一个数组有一个dtype属性,用来描述数组的数据类型. Series是一种一维数组型对象,包含了一个值序列,并且包含了数据标签----索引(index). ...
- JVM组成与作用
class loader 类加载器:加载类文件到内存.Class loader只管加载,只要符合文件结构就加载,至于能否运行,它不负责,那是有Exectution Engine 负责的.exectio ...
- OpenCV 读取、修改、保存图像
代码如下: #include <cv.h> #include <highgui.h> using namespace cv; int main( int argc, char* ...
- SHELL用法五(Case语句)
1.SHELL编程Case语句案例实战 1)Case选择条件语句的格式: case $INPUT in Pattern1) 语句1 ;; Pattern2) 语句2 ;; esac 2)Case语句企 ...
- 3DSMAX卸载/完美解决安装失败/如何彻底卸载清除干净3DSMAX各种残留注册表和文件的方法
在卸载3dsmax重装3dsmax时发现安装失败,提示是已安装3dsmax或安装失败.这是因为上一次卸载3dsmax没有清理干净,系统会误认为已经安装3dsmax了.有的同学是新装的系统也会出现3ds ...
- Service层在MVC框架中的意义和职责
https://blog.csdn.net/u012562943/article/details/53462157 mvc框架由model,view,controller组成,执行流程一般是:在con ...
- 我的第一个Quartz代码
创建Maven项目 打开Eclipse->File->Project->Maven ->Maven Project直接下一步输入Group Id和Artifact Id , ...
- unittest(22)- p2p项目实战(4)-read_config
# 4. read_config.py import configparser class ReadConfig: @staticmethod def get_config(file_path, se ...
- 国内游戏直播火热 为何YY游戏直播却巨亏
为何YY游戏直播却巨亏" title="国内游戏直播火热 为何YY游戏直播却巨亏"> 伴随"千万年薪主播"."美女主播陪玩那些事儿&q ...