个人作品

合抱之木,生于毫末;九层之台,起于累土;千里之行,始于足下

墨攻棋阵 - 黑白棋中的 AI(by 千千) 银牌收录

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

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

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

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

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

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

先附图:

怎么说千千也都是新手呢!感觉做的还算满意吧!

人机对战中有三种模式哦!

...

EasyUI:基于 EasyX 的 UI 界面库(by 祝融) 银牌收录

EasyUI 类构成指南

EasyUI 将 UI 拆分成了两个部分--绘制单元和事件触发器。
使用者可以使用绘制单元来控制 UI 的风格,同时选择一定的事件触发器来使 UI 具备响应事件的功能。

绘制单元:

-CDrawCell:所有绘制单元的基类
-CSimpleShape:继承自 CDrawCell,集成了通过 EasyX 图形绘制函数绘制的图形属性
-CHaveSize:所有拥有大小的类的基类
-CRect:继承自 CSimpleShape,绘制一个矩形
-CRoundRect:继承自 CSimpleShape,绘制一个圆角矩形
-CCircle:继承自 CSimpleShape,绘制一个圆形,并以绘制位置为中心(所有绘制单元都从左上角画起,除了圆)
-CEllipse:继承自 CSimpleShap,绘制一个椭圆(通过外接矩形)
-CText:继承自 CDrawCell,输出一串字符串
-CUIIm

...

防空车打飞机(by 左慈) 铜牌收录

游戏说明:

  • 在游戏中,你操控你的防空车尽可能的多击落飞机,躲避飞机扔的炸弹。
  • 游戏结束后,你可以选择重新开始游戏。
  • 感谢所有帮助过我的人。

编译环境:Visual C++ 6.0,EasyX 2014冬至版

最后修改:2014-12-27

游戏运行截图如下:

完整源代码、图片及编译后的可执行文件请【点击这里下载】。

作者:左慈
QQ:2382036672
邮箱:qwj2222@126.com

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 祝融) 铜牌收录

玩家被困在一个迷宫里,拥有一盏油灯,油灯能够照亮以玩家为中心的一片圆形区域,随着时间的流逝,油灯的照明力会逐渐下降,迷宫内随机分布着一些加油站(黄色的圆角矩形),经过这些加油站能够恢复油灯的照明力,找到地图右下角的终点(绿色圆角矩形)。就算过关。

游戏采用图块(N * N 的正方形)的方式构建地图,且墙壁,地面,玩家,终点采用四个独立的函数绘制,如果想改变地图的风格,只需要修改这些函数的内容即可。

运行效果如下:

迷宫生成采用的深度优先算法,有明显的主路。

完整的游戏源代码如下:

//////////////////////////////////////////////
// 程序名称:迷宫
// 程序作者:祝融
// 作者邮箱:211103376@qq.com
// 编译环境:Visual Studio 2017 + EasyX 20180727(beta)
// 发布时间:2019-2-10
// 最后修改:2019-2-13
//
...

可以自由定制的电子相册(by 席锦) 铜牌收录

这是一个自已DIY内容并且具有背景音乐的电子相册。通过自定义内容,可以制作成属于自己的电子纪念册。

点击小图可以查看每张图片以及对于的图片文字描述,按下 w、s、a、d、↑、↓、←、→ 按键可以达到和鼠标点击的同样效果。支持跳转至任意一张已加载的相片,也支持自动循环浏览相册,具体操作请点击对应的工具图标。

执行效果如下:

操作说明:

  1. 点击小相片将看到对应的大相片和相片印记
  2. 点击不同的工具图标将产生不同的效果
  3. 支持按键 w、s、a、d、↑、↓、←、→,作用分别是上下移动和左右翻页
  4. 支持跳转至任意编号相片
  5. 支持内容 DIY,具体操作请参照 Set.ini
  6. rc 文件为程序图标,不可修改
  7. res 为程序 DIY 内容所在文件夹,里面内容皆可修改

该项目的编译环境为:VS2017 + EasyX_20190314(beta)

完整的源代码【请点击这里下载】。

...

画板(by 冰雪女神百亚) 铜牌收录

这是一个画板程序。执行效果如下:

右边颜色即对应画笔颜色,滑动条可调节画笔大小。

如果画错了想擦除,选择对应背景色作为画笔颜色即可。

如果想保存你的画作,请点击“工具”二字。此时在与exe同目录下将会有名为“easyxImage.bmp”的文件。请及时拷走,以防下次保存时被覆盖。

全部代码如下:

///////////////////////////////////////////////
// 程序名称:画板
// 编译环境:Visual C++ 2017,EasyX_20180727(beta)
// 作者:冰雪女神百亚
// QQ:1169351944
// 邮箱:cloudea@163.com
// 最后修改:2019-1-18
//
#include<string>
#include<graphics.h>
using namespace std;

// 点
struct Point
{
	int x;
...

游戏:奔跑的火柴人(by 星) 铜牌收录

这是一款以火柴人为人物的小游戏,人物通过操作躲过各种障碍物,当人物撞到障碍物则游戏结束。

操作说明:W—跳跃,S—滚动

游戏执行效果:

完整源代码、图片及编译后的可执行文件请【点击这里下载】。

作者:星
QQ:453496034
邮箱:liluxing1993@qq.com

热力学模拟实验(by 常数变易法) 铜牌收录

这个程序是热力学模拟实验。

学热力学与统计物理的时候就想设计一个程序模拟气体分子的运动,这样就能直观地检测那些热力学公式的正确性。
这个程序设计成所有粒子之间的力都是斥力,粒子和边界之间也有斥力。粒子在二维平面运动。

程序的动态执行效果如下:

完整代码如下:

// 项目:热力学模拟实验
// 作者:常数变易法(QQ:1375989292)
// 时间:2019.12.19
// 环境:VC6.0

// 学热力学与统计物理的时候就想设计一个程序模拟气体分子的运动,这样就能直观地检测那些热力学公式的正确性。
// 这个程序设计成所有粒子之间的力都是斥力,粒子和边界之间也有斥力。粒子在二维平面运动。

// 版权:作者原创,无抄袭,不涉及版权问题,仅用作学习

#include <graphics.h>						// 引用图形库头文件
#include <stdio.h>
#include <conio.h>
...

青蛙过河小游戏 v1.0(by P_S_I) 铜牌收录

这是一个很典型的游戏,很多程序使用的也是这种结构,制作多个元件同时的运动。还有如何用光栅获得透明背景。希望我的小作品能抛砖引玉,给大家一点启发!

待扩展的功能:

  • 难度、更多关卡、商店、分数排行榜、岸上的障碍。
  • 背景音乐、音效、鼠标控制、时间限制等。

游戏规则:

  • WSAD 控制,ESC 退到主界面,再按则退出。
  • 木板间隔是随机的。
  • 生命归零时游戏结束。
  • 渡河会导致1条河道速度 +2。
  • 死亡会导致所有河道速度 -1。
  • 青蛙出界或落水算死亡。
  • 不会在第一道出界。
  • 积分的算法是四条河道速度相加。
  • 金币留给以后扩展程序。

源码说明:

  • 图片放在res文件夹里,请把 res 和 frogger.exe 放在同一个文件夹里。
  • 关于各种元件的代码分别写在以它们命名的 cpp
...

C语课程设计:小球移动(by 王雨峰) 铜牌收录

这是一个名为“小球移动”的小游戏,没什么游戏性,实现了课程要求的所有内容,也有所拓展。压缩包内有一 doc 格式的手册,供参考。

程序名称:小球移动

功能简述:
可添加、选择并删除小球,删除时球上的分数累加到玩家得分上。在尽可能短的时间内,达成下列两个条件之一即可获胜:
① 分数恰好为 50 分
② 分数为场上球数的 20 倍
获胜后可自动记录成绩信息;可导出/导入游戏状态;可暂停、调速。

游戏运行截图如下:

完整源代码请【点击这里下载】。

作者:王雨峰,北京工业大学
邮箱:807103724@qq.com