个人作品

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

BFS 寻路演示程序(by 光棱坦克) 铜牌收录

这个程序是 BFS 寻路 Demo。

该程序可以让用户自由设置起点、终点、障碍物,并得出寻路结果。寻路算法用的是广度优先搜索算法(BFS),界面和图形显示用的是 EasyX。

程序运行界面如下:

完整的源代码如下:

// 程序名称:BFS 寻路 Demo
// 作者:光棱坦克(prismtank)
// QQ:3152239285
// 完成日期:2016-7-16
// EasyX 版本:2015-10-15
//
#include <graphics.h>
#include <stdio.h>
#include <memory.h>
#include <queue>
using namespace std;

const int WIDTH = 24, HEIGHT = 24;

struct Block
{
	BYTE x, y, depth, data[200];
	bool searched, 
...

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

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

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

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

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

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

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

先附图:

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

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

...

2D 横向对抗射击游戏(by STF) 铜牌收录

游戏介绍

【第一版】

花了一天时间,用 easyx 做了一个小游戏,程序中所有的类函数都是内联函数,大约 300 行,开发环境是 Visual Studio 2015 Community。

【第二版】

主要做了代码优化,加强可读性。

同时改了操作方式,玩家和敌人都可以在 x、y 方向上移动,敌人每隔一段时间会随机换向。

游戏运行截图如下:

操作方式

玩家通过方向键移动,z 键射击,左 Shift 进入低速移动模式提高操作精度。

代码说明

关于无阻塞延时,
首先,先要 ctime 创建一个 clock_t 变量 a,初始化为 clock(),貌似是自从 1970 年到现在的毫秒数。
我们要每隔 0.5 秒执行函数 func() 一次。
那么创建主循环 while(1)
调用前用 clock() - a;
如果 clock() - a > 500,那么执

...

动态立体方块(by Kenny)

一个简单的绘图程序。

执行效果如下:

完整源代码如下:

/************************************************
 * 程序名称:动态立体方块							*
 * 编译环境:Visual C++ 6.0 / EasyX 2014冬至版	*
 * 作者:Kenny <499508968@qq.com>				*
 * 最后修改:2015.05.21							*
 ************************************************/

#include <graphics.h>
#include <conio.h>
#include <math.h>

void Block(int length);		// 画方块函数声明
void StrongBlock();			// 动态立体方块函数声明

// 主函数
int main()
{
	Stro
...

2D 射击游戏:大战黑帮(by Starsky) 铜牌收录

这是一款经典的 2D 射击游戏,ASDW 控制,鼠标左键射击,空格键放技能,P 键暂停

你正以一己之力撼动整个社区最大的黑帮!杀死敌人!越多越好!

游戏运行截图如下:

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

作者:Starsky
邮箱:lcj20000101@163.com

华容道(by 左慈) 铜牌收录

华容道游戏说明:

  • 编译环境:Visual C++ 6.0,EasyX 2014冬至版
  • 最后修改:2015-3-14
  • 操作方式:鼠标左键移动棋子,将曹操移动到出口处,过关。

游戏运行截图如下:

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

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

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

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

程序名称:小球移动

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

游戏运行截图如下:

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

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

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

游戏说明:

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

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

最后修改:2014-12-27

游戏运行截图如下:

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

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

贪吃蛇(by 王垣恒) 铜牌收录

一个比较新颖的贪吃蛇程序。

用左右表示蛇向左转或向右转,上用来加速。

源代码如下:

///////////////////////////////////
// 程序名称:贪吃蛇
// 编译环境:Visual C++ 6.0 / 2008,EasyX 2013冬至版
// 作者:王垣恒 QQ:646361765
// 最后修改:2014-5-20
// 操作方式:以蛇为第一视角,左 左转;右 右转;下 暂停;上 快进。
// 状态: 黄色 蛇头;红色 蛇身;绿色 食物。
//
#include <graphics.h>
#include <string.h>
#include <time.h>
#define NUM_R 10		//半径
#define NUM_X 25		//横向个数
#define NUM_Y 25		//纵向个数
#define NUM 30			//所需节点个数
void exe(int x,int y,int f);
...

多个小球在方框内的碰撞运动(by 可可) 铜牌收录

本程序模拟了多个小球在方框内的碰撞运动。

源代码如下:

///////////////////////////////////////////////////
// 程序名称:多个小球在方框内的碰撞运动
// 编译环境:Visual C++ 6.0,EasyX 2013冬至版
// 作  者:可可 
// 最后修改:2014-03-18
//
#include <graphics.h>
#include <conio.h>
#include <math.h>
#define	 XN	640
#define	 YN	480						// 设置图形窗口的大小
#define	 N	40						// 设置球的个数,最多 90 个
#define	 V	20						// 设置球的速度

// 画出一个球
void Ball(int x, int y)
{
	fillcircle(x, YN - y, 20);		// 转换成常用的坐标
}

// 判定是否发
...

一个简单的小游戏:盒子接球(by 圣石) 铜牌收录

用VC写了一个小小的游戏,在界面右侧有运行时间,接到的小球个数等信息,有 10 个小球下落,玩家可以控制一个盒子左右移动(方向键),来接小球,按 Esc 键退出,最后会显示接到的小球的数目。就是这么简单。

游戏运行截图如下:

以下是游戏的全部源代码:

///////////////////////////////////////////////////
// 程序名称:盒子接球(一个简单的小游戏)
// 编译环境:Visual C++ 6.0,EasyX 2013霜降版
// 作  者:圣石 <2464847121@qq.com>
// 最后修改:2013-12-1
// 玩法:按方向键控制盒子移动接住小球,总共有 20s 的游戏时间,倒计时为 0 时游戏结束
//
#include <graphics.h>
#include <conio.h>
#include <time.h>
#include <stdio
...

游戏:AyaCrossX(十字消除游戏)(by ls9512) 银牌收录

十字消除是一款经典消除类小游戏。玩法如下:

  1. 点击空白处,所在横纵十字线上同色方块会被消除。
  2. 消除方块会累加得分,并恢复一定量的时间。
  3. 方块数量少于某数值会出现新方块并回复时间。
  4. 时间耗尽时则游戏结束。

游戏运行截图如下:

游戏的源码编译环境:Visual C++ 6.0 / 2008 / 2010 / 2012,EasyX 2013霜降版

游戏的源代码如下:

/////////////////////////////////////////////////////////
// 程序名称:AyaCrossX(十字消除游戏)
// 编译环境:Visual C++ 6.0 / 2012,EasyX 2013霜降版
// 作    者:ls9512 <http://www.baidu.com/p/ls9512&g
...

超级蘑菇2(模拟 FC 游戏:超级玛丽)(by 木子念念) 铜牌收录

开发环境:

  • Windows XP
  • Visual Studio 2008
  • EasyX 2013霜降版

运行游戏:

  • 进入 Mario2,双击 maliao.exe 运行即可
  • 或进入 Mario2,用 vs2008 运行 maliao.sln

说明:这次的“超级蘑菇2”的代码除了界面部分,其它部分完全重新写了一遍,所以程序和算法基本和上个版本的程序不一样。上个版本把所有的代码都写在了一个类中,之后才发现那样写好搞笑,完全背离了面向对象的思想。这个版本写了几个类,但其实我现在看也觉得好搞笑,也没有把面向对象的思想突出出来(实力有限只能这样了),这也是我对这个程序最不满意的的方。但是相比之前的那个版本,这个版本还是比以前那个好很多。。。。

着重介绍一下我觉得“超级蘑菇2”的最大的亮点:之前我玩蘑菇1时发现它的游戏手感和经典游戏“超级玛丽”的手感差别很大。之后发现最大的原因就是,“超级玛丽”中的主角有一个重要的性质,那

...

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

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

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

游戏执行效果:

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

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

物理程序:引力模拟(by 有时的迷惘) 铜牌收录

一个模拟引力的程序。可以在程序中创建不同质量和初始速度的天体,天体按照万有引力定律运行。

左键创建天体。按下左键不松开,天体质量会增加;然后移动,会给天体赋值初始速度,然后松开左键。

右键删除天体。

超出屏幕、碰撞后的天体不会消失。

程序的运行截图如下:

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

作者:有时的迷惘
个人主页:www.baidu.com/p/有时的迷惘