提示:

本游戏是基于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++别踩白块小游戏相关推荐

  1. 原生html小游戏,原生JS实现别踩白块小游戏(一)

    对于前端开发人员来说,闲暇之余自己开发个小游戏打发时间,也是对自己基础技术的一种应用考验.那么别踩白块小游戏,相信大家并不陌生,这个小游戏我们可以通过原生js来实现,即便是前端初学者也可以轻松完成. ...

  2. 练手小项目——别踩白块小游戏

    参考:html5实现简单别踩白块小游戏 - XieYingpeng - 博客园 效果: 代码: <!DOCTYPE html> <html lang="en"&g ...

  3. 别踩白块html源码,原生JS实现别踩白块小游戏(七)

    在前面的文章<原生JS实现别踩白块小游戏(六)>中,为大家介绍了实现别踩白块小游戏的js代码中移动效果的方法概述. 下面我们就继续结合源代码中js代码部分,为大家介绍具体的实现方法. 相关 ...

  4. html5合影拍照小游戏,html5实现简单别踩白块小游戏

    属于简化版别踩白块,代码相对较为简单易学,主要涉及通过 javascript 操作元素节点的增删以及属性节点(class)的操作. HTML/CSSJavaScript元素节点增删属性节点操作 在开始 ...

  5. 原生js实现(别踩白块小游戏)

    原生js实现简单的小游戏,巩固原生js基础知识 js部分有详细注释 <!DOCTYPE html> <html lang="en"> <head> ...

  6. jQuery实现别踩白块小游戏(简易版)

    别踩白块分享 这是个漫长的寒假,编程使我快乐.在学习jQuery时,在家练习做了这个小游戏,也算是提升一下实际使用能力. 现在记录下来给大家参考,不足之处请大家谅解. 先上截图: 使用代码前请先导入j ...

  7. c语言别踩白块小游戏代码,自学easeljs 根据别踩白块游戏规则自己写的代码

    主要基于       -------easeljs-0.7.1.min.js-----   去制作这个游戏 思路:主要思路是以行为单位 绑定可点击行 选中则讲 移动最外层容器继续绑定可点击行的下一行 ...

  8. 基于Linux、QT、C++的“别踩白块儿”小游戏

    基于Linux.QT.C++的"别踩白块儿"小游戏 源码链接 一.功能实现 完善的游戏界面.游戏倒计时.得分记录.历史最高分显示 二.功能描述 1.界面为4*4,一行中只有一个黑块 ...

  9. html网页游戏别踩白块,原生JS实现《别踩白块》游戏(兼容IE)

    兼容了IE,每得20分就加速一次!!! 效果如下: 图(1) 游戏初始 图(2) 游戏开始 代码如下: *{ margin: 0; padding: 0; } .box { margin: 50px ...

最新文章

  1. 回文数:给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
  2. 计算机命令vty是什么意思,讲述华为交换机配置中HTTP访问和vty访问命令 -电脑资料...
  3. 用一个创业故事串起操作系统原理(二)
  4. hyperopt中文文档:Installation-Notes安装说明
  5. SESSION常见问题辑
  6. 构建树形结构数据(全部构建,查找构建)C#版
  7. [置顶] 总结工作中常用到的linux命令
  8. 【bzoj1727】[Usaco2006 Open]The Milk Queue 挤奶队列 贪心
  9. 如何搭建lamp(CentOS7+Apache+MySQL+PHP)环境
  10. 有软件开发,就要有软件测试!
  11. hadoop集群虚拟机配置
  12. git push失败的解决办法(2)
  13. ssas连接mysql_BI-SSAS简介篇
  14. 7个等级 容灾等级_猫奴的10个等级 你的奴性有多高?
  15. android sdk mac 环境变量,Mac 下的SDK环境变量配置
  16. linux命令mvn,Linux下使用mvn命令(maven)
  17. 2018一战硕士考研风雨路
  18. 移动通信网络架构的演进
  19. html文档标记语言,html是超文本标记语言标签有
  20. Unity 3D委托entrust

热门文章

  1. CentOS 7.0全自动安装光盘制作详解
  2. java QQ客户端
  3. R语言(R studio)画各类统计图形
  4. 尼康相机测试软件mac版,Nikon Camera Control
  5. STM32实现低功耗待机(电流低至5.7uA)
  6. CSDN博客如何改名字
  7. MacOS上使用ffmpeg利用显卡加速批量压缩视频
  8. DDN周报|3月26日-4月1日
  9. CVPR2022《BatchFormer: Learning to Explore Sample Relationships for Robust Representation Learning》
  10. 黑马程序员————IO流1(day18)