代码分享

================

迷宫小游戏

基于 EasyX 的迷宫小游戏,有三种随机生成算法。

包含九个文件:

  Maze.h : 初始化头文件
  Maze.cpp : 程序开端文件
  Game.h : 游戏类头文件
  Adventrue.cpp : 冒险模式类文件
  Forest.cpp : 冒险模式-森林系列类实现文件
  Dungeon.cpp : 冒险模式-地牢系列类实现文件
  Infernal.cpp : 冒险模式-地狱系列类实现文件
  Help.cpp : 帮助信息类实现文件
  Other.cpp : 刷新界面、放置按钮、输出对话框类实现文件

包含算法:

  森林系列:Prim 算法

  地牢系列:图论 DFS 算法

  地狱系列:暴力 DFS 算法

以下对这些算法给出简单说明,详细请自行学习(比较有难度):

  1.Prim 算法(请学习

...

纯软件算法实现 3D 渲染(by 桌子)

这个项目用 EasyX 实现了软件渲染器,模仿了很多 OpenGL 的 API 定义(类似 OpenGL 运行库),然后在 main.cpp 里面写用户自己的模型及贴图代码。在源码中有详尽的说明。

软件运行可以得到如下的效果:

主要实现的功能:

  • 一些简单的数学运算(矩阵相乘,向量叉乘等)
  • 使用扫描线多边形填充算法绘制多边形
  • 线性插值(linear interpolation)
  • 透视校正插值(perspective correct interpolation)
  • 深度测试(用于消隐)

一些我想到的但是暂时没实现的功能:

  • 不支持 ddx 和 ddy,所以没有 Mipmap,因为实现起来比较麻烦。
    ddx 和 ddy 是指在屏幕空间上求
...

Line Way 一笔画游戏(by Smileyan)

Line Way 是一个简单有趣的一笔画游戏。

玩家只需要用鼠标移动到方格上,使游戏角色将所有路径走遍即可过关。

目前游戏共有 25 关。

游戏执行效果如下:

  

源代码编写环境:Visual C++ 6.0,EasyX(20190219)

完整的游戏源代码在 github 上:https://github.com/smile-yan/LineWay

作者:Smileyan
QQ:837764072
邮箱:837764072@qq.com

FlipGame

FlipGame,又名点灯游戏,是一个十分有趣的智力游戏:有一行 N 行 N 列的灯,开始时全部是灭的,当你点击其中一盏灯时他的上下左右(若存在的话)状态全部改变,现在要求你以最少地步数,将全部的灯点亮。
此处使用了 8 x 8 的方格,其亮灭状态使用一个 8 字节变量按位记录,点亮状态使用了图片作为背景。

执行效果如下:

项目使用 VS2017 编译,图片内嵌到了资源文件中,并设置了应用图标。

【Git项目地址】

【压缩包】

兰顿蚂蚁

受到生命游戏启发,想到了这个兰顿蚂蚁,都是零玩家游戏。

在平面上的正方形格被填上黑色或白色。在其中一格正方形有一只“蚂蚁”,它的头部朝向上下左右其中一方。
若蚂蚁在白格,右转90度,将该格改为黑格,向前移一步;
若蚂蚁在黑格,左转90度,将该格改为白格,向前移一步。

以上就是兰顿蚂蚁的简单规则描述。更详细的请参考维基百科。

执行效果如下:

完整的源代码如下:

/******************************
 * 兰顿蚂蚁
 * 编译环境:VC++ 2017
 * 作者:that boy,2018/12/19
 * 最后修改:2018/12/21
 ******************************/

#include <EasyX.h>
#include <string>
#include <conio.h&

...

引力球模拟程序(by blue丶1ris)

这个程序模拟了知名游戏“引力球”。

按空格键开始游戏。

游戏执行截图如下:

完整的游戏源代码,作者分享在 github,地址:https://github.com/blue1ris/gravitational_ball 。

作者:blue丶1ris
邮箱:197041868@qq.com

墨攻棋阵 - 黑白棋中的 AI(by 千千)

到了考试周了佯,可是偏偏这个时候迎来了很多很多的课程设计,幸好教授把C语言的课程设计提前发出了,不然都在最后几周,加上数据结构的课程设计就没有时间做这个啦~

刚开始打算做成UWP应用的,可是网上的教程都是C#,并且用C++做的话某些功能和C#不一样,所以就这样拖了好多周,省赛前一点儿也没有开始做,等到省赛结束之后,别人都差不多完成啦!而我才开始准备查找资料……

然而一周过去了,进度还是0%。噫,1%吧!

眼看就要开始验收了,算了,还是用最简单的 EasyX 做吧!以后的 C# 课程设计再考虑 UWP。

周一开始敲代码,整整一周的课余时间,都在努力做这个,现在想起来,那个时候真的好累唉,居然没有感觉到~

最初做这个游戏是因为想起来 秦时明月 中的 墨攻棋阵 ,也就是黑白棋,努力还原动漫中的场景,周末的时候终于完成了。

先附图:

...

模拟 FC 游戏:经典红白机坦克大战

一款模仿红白机坦克大战的小游戏。

编译环境:Visual C++ 2019,EasyX_20200109(beta)

项目源码地址:https://github.com/xiongfj/FC-Tank

Release 下载:https://github.com/xiongfj/FC-Tank/releases/download/1.0/Release.7z

代码片段:

#include "stdafx.h"
#include "struct.h"
#include "SelectPanel.h"
#include "GameControl.h"
#include "MciSound.h"

#define ONE_PLAYER	1		// 不能修改该值!! 已经用于数组下标!!
#define TWO_PLAYER	2
...