C++别踩白块小游戏
提示:
本游戏是基于EasyX图形库制作的,刚刚开始学习C++不是很完美,有不足的地方还请指出。
——————————————————————————————————————————
#include <cstdlib>
#include <graphics.h>
#include <conio.h>
#include <synchapi.h>
#include <time.h>
#define HEIGHT 50 // 高上一共50个小格子
#define WIDTH 4 // 宽上一共4个小格子
#define BLOCK_SIZE 75 // 每个小格子的宽大小
int origin_y = -4400; //原点Y坐标
int carrent = 5050;//当前方块坐标
char input; //键盘获取值
void main()
{srand(time(0)); //重置随机序列initgraph(300, 600); //新建绘图界面setorigin(0, origin_y);//设置原点坐标void topsd(void);void Gemo_over(void);using namespace std;int coord[50][4]; //初始化方块数组int position; //方块位置int i;//循环参数int j;//循环参数float ck_wide = 300; //窗口宽float ck_hot = 600;//窗口高float fk_hot = 100;//方块高int add_value = 25; //增量值settextstyle(20, 16, _T("宋体")); // 设定文字大小、样式outtextxy(40, carrent - 300, _T("从左至右分别以")); // 输出文字内容outtextxy(50, carrent - 260, _T("D,F,J,K 控制")); // 输出文字内容settextstyle(40, 16, _T("宋体")); // 设定文字大小、样式outtextxy(40, carrent - 220, _T("点击任意键继续")); // 输出文字内容_getch();for (i = 0; i < 50; i++)for (j = 0; j < 4; j++){coord[i][j] = 0;}for (int ene = 1; ene <= 51; ene++){if (add_value == 25) //第一次初始化for (i = 0; i < HEIGHT; i++) // 对二维数组所有元素遍历{position = rand() % 4; //随机方块for (j = 0; j < WIDTH; j++){setlinecolor(RGB(0, 0, 0));if (position == j){coord[i][j] = 1;setfillcolor(RGB(0, 0, 0));}elsesetfillcolor(RGB(255, 255, 255)); // 根据元素值设定填充颜色,对应位置绘制对应颜色图像fillrectangle(j * BLOCK_SIZE, i * BLOCK_SIZE + add_value - 25, (j + 1) * BLOCK_SIZE, (i + 1) * BLOCK_SIZE + add_value * 2);}add_value += 25;}else{input = _getch(); //获取键盘输入值if (input == 'd'){carrent -= 100;COLORREF d = getpixel(40, carrent);cleardevice();if (d == RGB(0, 0, 0)){origin_y = origin_y + 100;setorigin(0, origin_y);//重设原点坐标add_value = 25;//恢复附加值for (i = 0; i < HEIGHT; i++) // 对二维数组所有元素遍历{for (j = 0; j < WIDTH; j++){setlinecolor(RGB(0, 0, 0));if (coord[i][j] == 1){setfillcolor(RGB(0, 0, 0));}elsesetfillcolor(RGB(255, 255, 255)); // 根据元素值设定填充颜色,对应位置绘制对应颜色图像fillrectangle(j * BLOCK_SIZE, i * BLOCK_SIZE + add_value - 25, (j + 1) * BLOCK_SIZE, (i + 1) * BLOCK_SIZE + add_value * 2);}add_value += 25;}}else{Gemo_over();return;}}else if (input == 'f'){carrent -= 100;COLORREF f = getpixel(140, carrent);cleardevice();if (f == RGB(0, 0, 0)){origin_y = origin_y + 100;setorigin(0, origin_y);//重设原点坐标add_value = 25;//恢复附加值for (i = 0; i < HEIGHT; i++) // 对二维数组所有元素遍历{for (j = 0; j < WIDTH; j++){setlinecolor(RGB(0, 0, 0));if (coord[i][j] == 1){setfillcolor(RGB(0, 0, 0));}elsesetfillcolor(RGB(255, 255, 255)); // 根据元素值设定填充颜色,对应位置绘制对应颜色图像fillrectangle(j * BLOCK_SIZE, i * BLOCK_SIZE + add_value - 25, (j + 1) * BLOCK_SIZE, (i + 1) * BLOCK_SIZE + add_value * 2);}add_value += 25;}}else{Gemo_over();return;}}else if (input == 'j'){carrent -= 100;COLORREF j = getpixel(210, carrent);cleardevice();if (RGB(0, 0, 0) == j){origin_y = origin_y + 100;setorigin(0, origin_y);//重设原点坐标add_value = 25;//恢复附加值for (i = 0; i < HEIGHT; i++) // 对二维数组所有元素遍历{for (j = 0; j < WIDTH; j++){setlinecolor(RGB(0, 0, 0));if (coord[i][j] == 1){setfillcolor(RGB(0, 0, 0));}elsesetfillcolor(RGB(255, 255, 255)); // 根据元素值设定填充颜色,对应位置绘制对应颜色图像fillrectangle(j * BLOCK_SIZE, i * BLOCK_SIZE + add_value - 25, (j + 1) * BLOCK_SIZE, (i + 1) * BLOCK_SIZE + add_value * 2);}add_value += 25;}}else{Gemo_over();return;}}else if (input == 'k'){carrent -= 100;COLORREF k = getpixel(280, carrent);cleardevice();if (RGB(0, 0, 0) == k){origin_y = origin_y + 100;setorigin(0, origin_y);//重设原点坐标add_value = 25;//恢复附加值for (i = 0; i < HEIGHT; i++) // 对二维数组所有元素遍历{for (j = 0; j < WIDTH; j++){setlinecolor(RGB(0, 0, 0));if (coord[i][j] == 1){setfillcolor(RGB(0, 0, 0));}elsesetfillcolor(RGB(255, 255, 255)); // 根据元素值设定填充颜色,对应位置绘制对应颜色图像fillrectangle(j * BLOCK_SIZE, i * BLOCK_SIZE + add_value - 25, (j + 1) * BLOCK_SIZE, (i + 1) * BLOCK_SIZE + add_value * 2);}add_value += 25;}}else{Gemo_over();return;}}}}//游戏胜利提示settextcolor(RGB(255, 228, 181));// 设定文字颜色settextstyle(80, 32, _T("宋体")); // 设定文字大小、样式outtextxy(0, carrent - 300, _T("Game victory")); // 输出文字内容settextstyle(40, 16, _T("宋体")); // 设定文字大小、样式outtextxy(40, carrent - 220, _T("点击任意键退出")); // 输出文字内容_getch();
}
void Gemo_over(void)
{setbkmode(TRANSPARENT); // 文字字体透明 settextcolor(RGB(255, 0, 0));// 设定文字颜色settextstyle(80, 32, _T("宋体")); // 设定文字大小、样式outtextxy(8, carrent - 300, _T("Gemo over")); // 输出文字内容settextstyle(40, 16, _T("宋体")); // 设定文字大小、样式outtextxy(40, carrent - 220, _T("点击任意键退出")); // 输出文字内容input = _getch();closegraph();cleardevice();closegraph();
}
有不足地方还请各位前辈指出。
C++别踩白块小游戏相关推荐
- 原生html小游戏,原生JS实现别踩白块小游戏(一)
对于前端开发人员来说,闲暇之余自己开发个小游戏打发时间,也是对自己基础技术的一种应用考验.那么别踩白块小游戏,相信大家并不陌生,这个小游戏我们可以通过原生js来实现,即便是前端初学者也可以轻松完成. ...
- 练手小项目——别踩白块小游戏
参考:html5实现简单别踩白块小游戏 - XieYingpeng - 博客园 效果: 代码: <!DOCTYPE html> <html lang="en"&g ...
- 别踩白块html源码,原生JS实现别踩白块小游戏(七)
在前面的文章<原生JS实现别踩白块小游戏(六)>中,为大家介绍了实现别踩白块小游戏的js代码中移动效果的方法概述. 下面我们就继续结合源代码中js代码部分,为大家介绍具体的实现方法. 相关 ...
- html5合影拍照小游戏,html5实现简单别踩白块小游戏
属于简化版别踩白块,代码相对较为简单易学,主要涉及通过 javascript 操作元素节点的增删以及属性节点(class)的操作. HTML/CSSJavaScript元素节点增删属性节点操作 在开始 ...
- 原生js实现(别踩白块小游戏)
原生js实现简单的小游戏,巩固原生js基础知识 js部分有详细注释 <!DOCTYPE html> <html lang="en"> <head> ...
- jQuery实现别踩白块小游戏(简易版)
别踩白块分享 这是个漫长的寒假,编程使我快乐.在学习jQuery时,在家练习做了这个小游戏,也算是提升一下实际使用能力. 现在记录下来给大家参考,不足之处请大家谅解. 先上截图: 使用代码前请先导入j ...
- c语言别踩白块小游戏代码,自学easeljs 根据别踩白块游戏规则自己写的代码
主要基于 -------easeljs-0.7.1.min.js----- 去制作这个游戏 思路:主要思路是以行为单位 绑定可点击行 选中则讲 移动最外层容器继续绑定可点击行的下一行 ...
- 基于Linux、QT、C++的“别踩白块儿”小游戏
基于Linux.QT.C++的"别踩白块儿"小游戏 源码链接 一.功能实现 完善的游戏界面.游戏倒计时.得分记录.历史最高分显示 二.功能描述 1.界面为4*4,一行中只有一个黑块 ...
- html网页游戏别踩白块,原生JS实现《别踩白块》游戏(兼容IE)
兼容了IE,每得20分就加速一次!!! 效果如下: 图(1) 游戏初始 图(2) 游戏开始 代码如下: *{ margin: 0; padding: 0; } .box { margin: 50px ...
最新文章
- 回文数:给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
- 计算机命令vty是什么意思,讲述华为交换机配置中HTTP访问和vty访问命令 -电脑资料...
- 用一个创业故事串起操作系统原理(二)
- hyperopt中文文档:Installation-Notes安装说明
- SESSION常见问题辑
- 构建树形结构数据(全部构建,查找构建)C#版
- [置顶] 总结工作中常用到的linux命令
- 【bzoj1727】[Usaco2006 Open]The Milk Queue 挤奶队列 贪心
- 如何搭建lamp(CentOS7+Apache+MySQL+PHP)环境
- 有软件开发,就要有软件测试!
- hadoop集群虚拟机配置
- git push失败的解决办法(2)
- ssas连接mysql_BI-SSAS简介篇
- 7个等级 容灾等级_猫奴的10个等级 你的奴性有多高?
- android sdk mac 环境变量,Mac 下的SDK环境变量配置
- linux命令mvn,Linux下使用mvn命令(maven)
- 2018一战硕士考研风雨路
- 移动通信网络架构的演进
- html文档标记语言,html是超文本标记语言标签有
- Unity 3D委托entrust
热门文章
- CentOS 7.0全自动安装光盘制作详解
- java QQ客户端
- R语言(R studio)画各类统计图形
- 尼康相机测试软件mac版,Nikon Camera Control
- STM32实现低功耗待机(电流低至5.7uA)
- CSDN博客如何改名字
- MacOS上使用ffmpeg利用显卡加速批量压缩视频
- DDN周报|3月26日-4月1日
- CVPR2022《BatchFormer: Learning to Explore Sample Relationships for Robust Representation Learning》
- 黑马程序员————IO流1(day18)