墨攻棋阵 - 黑白棋中的 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 渲染 金牌收录

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

基于 MCI 播放,EasyX 为界面的音乐播放器 铜牌收录

这是一个基于 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 : 游戏按钮类实现文件
...