这是经典的下 100 层游戏。>_<
通过鼠标左右键或者键盘 A、D 按键及左右方向键控制小球左右移动,木板会不断上升,小球到底认定游戏结束,按下键盘后小球会加速到一个最大速度,小球在木板上则会跟着木板上移,达到一定分数启动反向操作。
本程序采用单例设计模式,RollingBall 公有继承 BallAndPlank,protected 便于派生类访问基类数据成员。
木板的颜色随机,位置随机。
界面由初始化界面大小控制,可自行更改。
游戏运行截图如下:
游戏的完整源代码如下:
/*
项目名称:
RollingBall
作者:
tzdhu.z@qq.com (1926594835)
编译环境:
Visual Studio 2017,EasyX_20190219(beta)
发布日期:
2019-2-2
最后修改:
2019-2-23
项目介绍:
本程序由单例设计模式
...
这是个高仿的扫雷游戏,游戏手感非常贴近原版。
代码由两个类构成,基类 Graph 对 IMAGE 进行绘制,同时生成界面,初始化相关数据。MineSweeper 类继承 Graph 类,主要进行相关操作,识别按钮等做出反应。
执行效果如下:
完整的游戏源码如下:
/*
程序名称:扫雷
简 介:一款经典的小游戏,程序运行中可以通过 ESC 直接退出
左键点击,右键标记和取消标记,同时按下左右或按下中间键触发提示
其他操作基本和官方一致,界面略有调整,详细操作自行测试
编译环境:VS2019 + EasyX_20190529(beta)
编写时间:2019-6-29
最后修改:2019-7-30
作 者:Teternity(qq1926594835)
版 权:作者原创,无抄袭,不涉及版权问题,仅用作学习
*/
// 头文件
#include <graphics.h>
#include <co
...
一、简介
单机版扫雷总会有些枯燥,不妨试试联网对战版扫雷!
开发环境:VS2019 + EasyX_20210224。
游戏玩法:左键按下翻开方块,翻开雷判输,或翻开最后一个方块判赢;逃跑或超时会结束本轮连接,正常结束会自动重新开局,对手不变。
目的:一方面提供联网对战版扫雷供大家娱乐,另外也是重构曾经写过的扫雷单机版,最后也为了练习 Windows 网络编程。
二、网络
关于 Windows 网络编程书籍,推荐朱晨冰老师的《Visual C++ 2017 网络编程实战》,出版日期 2020 年。
个人感觉这本书讲解比较细致,内容也不会太老旧,有计网基础会更容易理解学习。
程序采用阻塞套接字编写,因此服务器免不了使用多线程,多线程部分由 C++11 提供。
想要让程序不限于局域网通信又不想购买服务器,这里推荐花生壳软件,操作简单,TCP 部分免费使用,相关内容自行搜索。
三、程序文件
1、服务器文件:
...
这是一个贪吃蛇大作战类游戏,修改特性为 AI 不互杀;
该程序有四个类:蛇基类 SnakeBase,玩家类 Player,AI 类,Game 类;
SnakeBase 和 AI 均继承自 SnakeBase,SnakeBase 提供基础接口;
Game 提供数据初始化以及游戏主循环。
程序设计之初,采用“实运行”方式,即所有动画均在地图 imgMap 上真实绘制,
这样却有一些严重的问题,需要不断地记录节点背景以恢复节点经过的地方等。
后修改为“虚运行”方式,判断位置是否可视后直接绘至窗口内,
这样大大降低时间开销,同时不会因为蛇靠近而产生不可擦除的颜色。
至于蛇运行,采用位置继承,即节点下一个位置为上一个节点的位置,但是会发现跨度太大,
解决办法是在这个跨度中插入适当帧数。
执行效果如下:
完整代码如下:
/*
程序名称:
贪吃蛇大作战
...
这不是一个游戏,而是算法分享和算法演示。
通过简单绘图,使得算法的执行过程可视化。
包含两个文件:头文件 MazeAlgorithm.h 和 源文件 main.cpp。
main.cpp 给出基本控制和简单文字按钮。
MazeAlgorithm.h 给出算法的实现和演示绘图,包含算法如下:
一、迷宫生成:
① DFS(即深度优先)递归和非递归版本。
② 十字分割 递归和非递归版本。
③ 随机 Prim。
二、迷宫寻路:
① DFS(分为随机方向 和 指定优先遍历方向,是同一个接口)。
② A* 寻路。
这对于初学者而言或有难度,而且许多教程只是给出简陋的文字描述,很难上手代码。
若以后有时间,我尽量去完成一篇迷宫算法的博客,然后回头补链接。
以下对这些算法给出简单说明(注:这不足以让你深刻理解算法原理
...
这是一个简单的烟花程序,纯代码实现,
代码总长约 260 行,若有心去看应该不难看懂,相关注释已写于源码中。
3D 到 2D 转换 和 物理轨迹严格按照公式计算,
其余个别参数根据估计调试而设置,不用深究。
程序用到的 EasyX 绘图 主要是 solidcircle 和 putpixel,
更多的是对 语言特性、基础数学和物理的应用,亦可见其重要性。
编程之路,需要的不仅仅是语言,愿君共勉。
最后祝大家新年快乐!
界面截图:
源代码:
/*
程序名称:
烟花(Fireworks)
简介:
用 EasyX 实现的一个简单的烟花程序
加入 z 轴以实现简单的 3D 视觉效果
物理计算时 1 像素等效 10cm
注:计算 3D->2D 时,未采用斜二测画法,而是不计
...
纯代码实现的一个简单的炸金花的小游戏。
市面上的炸金花似乎已经被禁,因此模拟时没有参考,或许有一些不足。
由于简单模拟,所以没有太多的动画和界面。
程序由 三个头文件 和 一个源文件 组成,便于分块管理。
一、"Cards.h"
封装了卡牌底层,由三个类组成,单张牌类、三张牌类 和 52 张牌的类。
有控制台的输出测试接口。
二、“CardGraph.h”
该文件主要是进行绘图,根据扑克的底层数据进行相关绘制。
修改:利用宽字符输出实现花色,而不是直接绘制。
绘制卡片背面心形时,仅需两条直线和两条贝塞尔曲线即可,这里不过多说明。
三、"Controller.h"
该文件是游戏的控制文件,处理按钮、鼠标、发牌等等操作。
由两个类组成,Butt
...
一、简介
大球吃小球,模拟自小游戏,左键按下状态拖动小球进行移动,躲避大球的同时尽量多吃小球。
玩法简单,程序也简单。开始界面按下左键开始游戏,按下右键退出程序。
新生球保护期:在 500ms 后可以被玩家吃到,在 800ms 后可以击杀玩家。
相同大小的小球碰撞时判断玩家失败。
二、游戏截图
三、游戏源码
/*
程序名称:
大球吃小球
简介:
模拟小游戏,左键按下状态拖动小球进行移动,躲避大球的同时尽量多吃小球
环境:
VS2019 + EasyX_20210115(beta)
时间:
2021.2.4
作者:
Teternity(QQ:1926594835)
版权:
作者原创,无抄袭,不涉及版权问题,仅用作学习
*/
/* ---------------头文件--------------- */
#include <iostream>
...