模拟 FC 游戏:经典红白机坦克大战
墨攻棋阵 - 黑白棋中的 AI(by 千千)
到了考试周了佯,可是偏偏这个时候迎来了很多很多的课程设计,幸好教授把C语言的课程设计提前发出了,不然都在最后几周,加上数据结构的课程设计就没有时间做这个啦~
刚开始打算做成UWP应用的,可是网上的教程都是C#,并且用C++做的话某些功能和C#不一样,所以就这样拖了好多周,省赛前一点儿也没有开始做,等到省赛结束之后,别人都差不多完成啦!而我才开始准备查找资料……
然而一周过去了,进度还是0%。噫,1%吧!
眼看就要开始验收了,算了,还是用最简单的 EasyX 做吧!以后的 C# 课程设计再考虑 UWP。
周一开始敲代码,整整一周的课余时间,都在努力做这个,现在想起来,那个时候真的好累唉,居然没有感觉到~
最初做这个游戏是因为想起来 秦时明月 中的 墨攻棋阵 ,也就是黑白棋,努力还原动漫中的场景,周末的时候终于完成了。
先附图:
怎么说千千也都是新手呢!感觉做的还算满意吧!
人机对战中有三种模式哦!
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
引力球模拟程序(by blue丶1ris)
这个程序模拟了知名游戏“引力球”。
按空格键开始游戏。
游戏执行截图如下:
完整的游戏源代码,作者分享在 github,地址:https://github.com/blue1ris/gravitational_ball 。
作者:blue丶1ris
邮箱:197041868@qq.com
纯软件算法实现 3D 渲染
基于 MCI 播放,EasyX 为界面的音乐播放器
FlipGame
FlipGame,又名点灯游戏,是一个十分有趣的智力游戏:有一行 N 行 N 列的灯,开始时全部是灭的,当你点击其中一盏灯时他的上下左右(若存在的话)状态全部改变,现在要求你以最少地步数,将全部的灯点亮。
此处使用了 8 x 8 的方格,其亮灭状态使用一个 8 字节变量按位记录,点亮状态使用了图片作为背景。
执行效果如下:
项目使用 VS2017 编译,图片内嵌到了资源文件中,并设置了应用图标。
Git项目地址:https://github.com/thatboy-zero/FlipGame8x8https://raw.githubusercontent.com/thatboy-zero/FlipGame8x8/master/FlipGame8x8%5B12-28%5D.zip
迷宫小游戏
基于 EasyX 的迷宫小游戏,有三种随机生成算法。
包含九个文件
- Maze.h : 初始化头文件
- Maze.cpp : 程序开端文件
- Game.h : 游戏类头文件
- Adventrue.cpp : 冒险模式类文件
- Forest.cpp : 冒险模式-森林系列类实现文件
- Dungeon.cpp : 冒险模式-地牢系列类实现文件
- Infernal.cpp : 冒险模式-地狱系列类实现文件
- Help.cpp : 帮助信息类实现文件
- Other.cpp : 刷新界面、放置按钮、输出对话框类实现文件
包含算法
- 森林系列:Prim 算法
- 地牢系列:图论 DFS 算法
- 地狱系列:暴力 DFS 算法
算法说明
以下对这些算法给出简单说明,详细请自行学习(比较有难度):
...兰顿蚂蚁
受到生命游戏启发,想到了这个兰顿蚂蚁,都是零玩家游戏。
在平面上的正方形格被填上黑色或白色。在其中一格正方形有一只“蚂蚁”,它的头部朝向上下左右其中一方。
若蚂蚁在白格,右转90度,将该格改为黑格,向前移一步;
若蚂蚁在黑格,左转90度,将该格改为白格,向前移一步。
以上就是兰顿蚂蚁的简单规则描述。更详细的请参考维基百科。
执行效果如下:
完整的源代码如下:
/******************************
* 兰顿蚂蚁
* 编译环境:VC++ 2017
* 作者:that boy,2018/12/19
* 最后修改:2018/12/21
******************************/
#include <EasyX.h>
#include <string>
#include <conio.h>
namespace LangtonAn
...
益智小游戏:交叉线
这是用 C++ 写的益智小游戏“交叉线”(源码在底部)。
本程序的核心在于判断线段是否交叉,需要两种算法:快速排斥实验和跨立实验
包含十三个文件
- Head.h : 初始化头文件
- Cross Line.cpp : 程序开端文件
- Game_Class.h : 游戏类头文件
- Game.cpp : 游戏类文件
- Begin.cpp : 初始界面类实现文件
- Level.cpp : 关卡界面类实现文件
- Play.cpp : 游戏界面类实现文件
- Win.cpp : 过关界面类实现文件
- About.cpp : 关于项目类实现文件
- Point.cpp : 点的结构类实现文件
- Line.cpp : 线的结构类实现文件
- Button.cpp : 游戏按钮类实现文件
- Button_Image.cpp : 游戏按钮类实现文件