个人作品

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

拼图 2.0(by Redman)

经典的拼图游戏。

采用 c++ 编写,主要使用到了两个类,分别是 GameFrame 和 Picture。

GameFrame 负责游戏界面的初始化和原始信息的绘制;Picture 负责图片的切割,图片位置的初始化,通关条件判断,控制整个游戏正确运行。

另外这次还修改了鼠标位置与图片的定位算法,同时图片位置初始化由正确的通关位置移动而来,所以能保证拼图游戏绝对有解,不需要使用复杂的数学公式来判断。

我的一点心得:在这个版本之前,我还写过一个版本,玩法不一样,所以开始没考虑拼图是否有解,以为只要通过移动就能得到全部想要的结果。界面也不好看,说实话,这次这个界面,我觉得勉强还能接受,没有找到那种能让我眼前一亮的渐变颜色。通过这个游戏的设计我学会了怎样切割图片,怎样快速的定位,更熟练的使用 easyx 提供的 API 函数,对于 c++ 语言本身,并没有使用到继承与多态还有泛型以及相关的知识,所以是熟练一下以前学过的知识吧。个人觉得 c++ 真的是一门非常优秀的语言。

游戏运行截图如下:

...

实现水波纹显示效果(by 豪)

当鼠标滑过时,可以在屏幕上实现漂亮的水波纹效果。

执行效果如下:

源代码如下:

/****************************************************
 * 程序名称:实现水波纹显示							*
 * 编译环境:Visual C++ 6.0,EasyX 20130114(beta)	*
 * 作  者:豪 (QQ: 415051674)						*
 * 核心算法:参考网上算法								*
 * 最后修改:2013/3/20								*
 ****************************************************/


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

#define PIC_HEIGHT
...

青蛙过河小游戏 v1.0(by P_S_I)

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

待扩展的功能: 

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

游戏规则:

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

源码说明:

  • 图片放在res文件夹里,请把 res 和 frogger.exe 放在同一个文件夹里。
...

迷宫 2:支持自己创建迷宫,并求解最短路径(by Redman)

本迷宫游戏支持用户自己创建迷宫,定义迷宫的出入口,并求解最短路径。

游戏运行抓图如下:

使用方法:

  1.  执行程序后,先按 s,开始用鼠标绘制迷宫墙壁。
  2.  绘制完墙壁后,按 e,用鼠标设置迷宫的出入口。
  3.  设置好出入口之后,按 d,动态演示迷宫的最短路径。

游戏采用面向对象技术编写,完整的游戏 VC++ 源代码下载:<点击这里下载>

作者:Redman
邮箱:huangxionging@163.com

万年历(by Redman)

万年历程序。顾名思义可以查询很多年份的日历。

按键介绍:

  • q 年份加 1,a 年份减 1
  • w 年份加 10,s 年份减 10
  • e 年份加 100,d 年份减 100
  • r 年份加 1000,f 年份减 1000
  • t 月份加 1,g 月份减 1

执行效果如下:

完整的源代码如下:

/************************************************************
 * 本程序名叫万年历:										*
 * 顾名思义可以查询很多年份的日历							*
 * 按键介绍:												*
 * q 年份加 1, a 年份减 1									*
 * w 年份加 10, s 年份减 10									*
 * e 年份
...

三辆行驶的小车(by E_SHARE)

本程序模拟了以不同速度行驶的三辆小车。

源代码如下:

////////////////////////////////////////////
// 程序名称:3 辆行驶的小车
// 编译环境:Visual C++ 6.0,EasyX_20120603(beta) 
// 程序编写:E_SHARE <501748772@qq.com>
// 编写时间:2012-6-26
////////////////////////////////////////////
#include <graphics.h>
#include <conio.h>
#include <stdlib.h>
#include <stdio.h>

// 声明需要使用的函数
void carstart(int x, int y, int z);
void drawbus();
void init();

// 定义全局变量
IMA
...

图片转化为 ASCII 图,就是很多字符组成图片的那种(by Geodesic)

本程序实现将图片转换为 ascii 字符的效果。

使用说明:

支持 bmp / jpg / gif / emf / wmf / ico 类型的图片。gif 类型的图片仅加载第一帧,不支持透明。我只测试过jpg格式。

请把要转换的图片复制到 exe 程序所在的文件夹,并确保图片名中没有中文等无法输入的字符。

运行 exe 文件即可转换。

因为 txt 文件的行距,字符间距等原因,为了达到最好效果,请先把图片的高度压缩到原来的 1/2(宽度不变)。

转换根据图片的实际大小操作,如果图片过大,请修改图片尺寸,或者手工修改 txt 中字符的尺寸,以便能够完全显示。

这仅仅是一个 demo,里边存在不少问题,比如 ASCII 灰度实际上是按照 8*16 像素扫描的;实际使用的 ASCII 灰度值我修改过,并非原来的灰度等等。

为了更精确的控制字体的尺寸,间距,行距,html 文件是个不错的选择,如果你愿意的话,你可以选择完善这个 demo,做成一个很实用的小小的软

...