
贪婪球第一版在这里:https://codebus.cn/contributor/post/greedy-ball
2.0 版本相对第一版做了如下修改:
- 视野缩放,会随着体积增大视野变大,解决一代玩家球过大挡住屏幕现象
- 增加高杀伤力毒圈,解决满地图跑问题
- 提高敌人 AI 智商,会主动吃食物
- 修复若干已知 bug
- 扩大了游戏区域
- 全部用 c++ 重写
执行效果如下:
完整的源代码如下:
///////////////////////////////////////////////////
// 程序名称:贪婪球 2.0
// 编译环境:Microsoft Visual studio 2017,EasyX 2018春分版
// 作 者:奶酪
// 邮 箱:2190038793@qq.com
// 发布日期:2019-6-24
...

游戏介绍
【第一版】
花了一天时间,用 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,那么执
...
本程序模拟了多个小球在方框内的碰撞运动。
源代码如下:
///////////////////////////////////////////////////
// 程序名称:多个小球在方框内的碰撞运动
// 编译环境: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); // 转换成常用的坐标
}
// 判定是否发
...

这是一个简单的飞机空战游戏。
游戏操作说明:
w、s、a、d 控制飞机移动
k 发射子弹
空格暂停
ESC退出
敌机自动发射子弹、自动移动
当飞船碰到敌机、飞船血量为 0、敌机碰到底部时游戏结束
敌机血量为 0 时,会出现一个新的敌机
小敌机随机出现
结束后按 ESC 退出,按 R 重来。
游戏运行截图如下:
该游戏的编译环境为:Visual C++ 2013,EasyX_20190219(beta)。
完整的游戏源码包【点击这里下载】。
作者:刘华欣
QQ:1359240780
邮箱:1359240780@qq.com

经典的拼图游戏。
采用 c++ 编写,主要使用到了两个类,分别是 GameFrame 和 Picture。
GameFrame 负责游戏界面的初始化和原始信息的绘制;Picture 负责图片的切割,图片位置的初始化,通关条件判断,控制整个游戏正确运行。
另外这次还修改了鼠标位置与图片的定位算法,同时图片位置初始化由正确的通关位置移动而来,所以能保证拼图游戏绝对有解,不需要使用复杂的数学公式来判断。
我的一点心得:在这个版本之前,我还写过一个版本,玩法不一样,所以开始没考虑拼图是否有解,以为只要通过移动就能得到全部想要的结果。界面也不好看,说实话,这次这个界面,我觉得勉强还能接受,没有找到那种能让我眼前一亮的渐变颜色。通过这个游戏的设计我学会了怎样切割图片,怎样快速的定位,更熟练的使用 easyx 提供的 API 函数,对于 c++ 语言本身,并没有使用到继承与多态还有泛型以及相关的知识,所以是熟练一下以前学过的知识吧。个人觉得 c++ 真的是一门非常优秀的语言。
游戏运行截图如下:
...

这个打字母游戏是用图片的形式做的,并配有音乐。
以下是运行截图:
完整源代码、图片及编译后的可执行文件请【点击这里下载】。
作者:haha
邮箱:517467449@qq.com
个人主页:https://www.baidu.com/p/haha1111111113

这个计算器程序是模仿 Windows 10 系统的计算器所写的,借鉴了 Windows 10 计算器的一些外观设计以及所包含的一些功能,但是实现此计算器的所有算法是自己独立开发,其中的一些功能或许没有写的很完善。
下面介绍此计算器所包含的一些功能,以及用法。
计算器包含两大功能:计算功能、转换功能。计算功能包含普通计算器、科学计算器、超大数的计算、解一元一次方程。转换器包含体积转换、长度转换、重量转换、温度转换、能量转换、面积转换、速度转换、时间转换、功率转换、数据转换、压力转换、角度转换,包含了基本所有常用的转换。
普通计算器:实现最普通的加减乘除,通过用户输入的字符串(中缀表达式),转换为计算机可以计算的后缀表达式(后缀表达式又称逆波兰式),最后通过栈来实现计算。
科学计算器:所谓的科学计算器只是加上了一些可以计算的函数,如 sin、cos、tan 等,这个计算器不是按上面普通计算器的实现方法,而是通过数字的直接计算,功能实现的不是很好(所以我认为科学计算用起来是不怎么好用)。
超大数计算:实现一些很大的数
...

本程序实现将图片转换为 ascii 字符的效果。
使用说明:
支持 bmp / jpg / gif / emf / wmf / ico 类型的图片。gif 类型的图片仅加载第一帧,不支持透明。我只测试过jpg格式。
请把要转换的图片复制到 exe 程序所在的文件夹,并确保图片名中没有中文等无法输入的字符。
运行 exe 文件即可转换。
因为 txt 文件的行距,字符间距等原因,为了达到最好效果,请先把图片的高度压缩到原来的 1/2(宽度不变)。
转换根据图片的实际大小操作,如果图片过大,请修改图片尺寸,或者手工修改 txt 中字符的尺寸,以便能够完全显示。
这仅仅是一个 demo,里边存在不少问题,比如 ASCII 灰度实际上是按照 8*16 像素扫描的;实际使用的 ASCII 灰度值我修改过,并非原来的灰度等等。
为了更精确的控制字体的尺寸,间距,行距,html 文件是个不错的选择,如果你愿意的话,你可以选择完善这个 demo,做成一个很实用的小小的软件,但是让一个东
...
贪吃蛇的核心代码,很精简。
完整源代码如下:
///////////////////////////////////////////////////
// 程序名称:贪吃蛇的核心代码
// 编译环境:VC6.0 / VC2010,EasyX 2011惊蛰版
// 作 者:shareli,QQ: 953445224
// 最后修改:2012-2-4
//
#include <graphics.h>
#include <conio.h>
#include <time.h>
#include <stdlib.h>
#define SIZEMAX 100 // 定义蛇的最大长度
#define SNAKELEN 10 // 蛇的大小和蛇每次移动的距离
#define SPEED 100 // 初始速度
/****************************************/
typedef enum // 定义表示方向的枚举变量
...

一个模拟弹力的小程序,执行效果如下:
感兴趣的可以再加上几个小球,类似的还可以模拟出绳子的效果。
以下是全部源代码:
///////////////////////////////////////////////////
// 程序名称:模拟弹力的小程序
// 编译环境:Visual C++ 6.0 / 2010,EasyX 20120404(beta)
// 作 者:frxyz1 <http://hi.baidu.com/frxyz1>
// 最后修改:2012-4-14
//
#include <graphics.h>
#include <conio.h>
#define BALL_RADIUS 30 // 小球的半径
void main()
{
initgraph(640, 480);
setfillstyle(RGB(255, 0, 0));
// 小球的初始位置
float ballx = 320.f,
...

一个模拟橡皮筋的程序。
执行效果:
以下是全部源代码:
///////////////////////////////////////////////////
// 程序名称:模拟橡皮筋
// 编译环境:Visual C++ 6.0 / 2010,EasyX_20210730
// 作 者:frxyz1 <http://hi.baidu.com/frxyz1>
// 最后修改:2012-4-15
//
#include <graphics.h>
#include <conio.h>
#include <stdio.h>
#define NODES 20
#define GRAVITY 1
#define ITER 8
struct Vector
{
float x, y;
void operator += (Vector v) { x += v.x; y += v.y; }
void operator -
...

该游戏是经典的涂格子游戏,很有挑战性。
执行效果如下:
源代码如下:
/**********************************************************
* 程序功能:涂格子游戏
* 程序版本:v0.1 基本功能演示版本,简单动态效果,可以过关
* 编译环境:Visual C++ 6.0,EasyX_20130506(beta)
* 最后更新:2010-11-9
**********************************************************/
#include <graphics.h>
#include <conio.h>
#define MaxNum 14 //单边最大格子数
#define G_length 30 //格子边长
#define USER_LBUTTONDOWN 101
#define USER_RBUTTONDOWN
...

万年历程序。顾名思义可以查询很多年份的日历。
按键介绍:
- 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 年份加 100, d 年份减 100 *
* r 年份
...

上大学一学期了,有点想家。
突发奇想,花了一天的时间,用 vc++6.0 写完了这个程序。
代码写的不怎么样,希望大家不要太严格 QAQ
执行效果截图:
完整源代码、背景音乐请【点击这里下载】。
完整代码如下(记得附上背景音乐文件):
#include <graphics.h>
#include <stdlib.h>
#include <conio.h>
#include <time.h>
#include <stdio.h>
#pragma comment(lib,"Winmm.lib")
#define WATERSPEED 12.0 // 雨点速度
#define BUILDINGNUM 30 // 建筑物数量
#define RAINNUM 300 // 雨点数量
#define C
...

这个程序模拟的红白机上的经典游戏超级玛丽,游戏截图如下:
项目基于 VC6 / VC2010 编译,需要安装 EasyX 库。【点击这里下载完整代码】
作者:木子念念
个人主页:https://www.baidu.com/p/taozi24