个人作品

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

贪吃蛇(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(in
...

多个小球在方框内的碰撞运动(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 <t
...

游戏:AyaCrossX(十字消除游戏)(by ls9512)

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

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

游戏运行截图如下:

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

游戏的源代码如下:

/////////////////////////////////////////////////////////
// 程序名称:AyaCrossX(十字消除游戏)
// 编译环境:Vis
...

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

开发环境:

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

运行游戏:

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

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

 着重介绍一下我觉得“超级蘑菇2”的最大的亮点:之前我玩蘑菇1时发现它的游戏手感和经典游戏&ldq

...

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

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

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

右键删除天体。

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

程序的运行截图如下:

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

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

计算器(by Redman)

本程序采用面向对象技术编写,主要涉及到了三个类:GButton、GEdit、GCount。

GButton 负责按钮的放置,绘制,响应鼠标等操作。GEdit 负责编辑框的显示更新数据,通过设置其内部的字符串来更新数据, 设置函数 SetEditString 就是程序与编辑框的接口,每进行一次操作将 GCount 的字符串通过该函数传递给编辑框,然后编辑框更新数据。每个按钮内部也有字符串, 每次通过读取按钮内部的字符串来裁决 GCount 要进行的操作,当程序获取到左右操作数时,相当于用户点击了等于号按钮,程序便计算结果,并将结果传递给 GCount 内部的字符串,以便后续操作。当用户使用鼠标滑动时,会产生鼠标消息,若有鼠标消息,程序便读取一个消息,此时判断鼠标滑动的位置,函数 OnLocate 就是原来计算鼠标是否滑动到按钮上,若的确滑动到了按钮上,则将其设置为当前按钮,并将上次滑动到的按钮的颜色恢复,当前按钮的颜色将变化,至于 GButton 为什么使用二维数组,便是为了快速的将鼠标消息所对应的位置与相应的按钮映射过来,这样能迅速的找到对应的按钮,并对其进行操作

...

游戏:种地要浇水(创意源自《金庸无双》)(by i92076)

游戏规则如下:

填补水渠使每块田地都被灌溉。方向键选择,空格确定。

特技(耗金币):

  • 重置:R 键
  • 顺时针旋转:S 键
  • 逆时针旋转:N 键
  • 跳过一个:T 键

具体金币盈亏细则,可以在游戏中按 H 键查看。

注:游戏创意源自《金庸无双》。

游戏运行截图如下:

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

作者:i92076
个人主页:https://www.baidu.com/p/i92076