
本程序实现将图片转换为 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 -
...

关于 Mandelbrot Set (曼德布洛特集) 的介绍什么的我就不多说了,网上一大堆。执行效果如图:
为了美观,可以修改一下颜色部分,目前代码中的颜色是这样的:
HSLtoRGB((float)((k<<5) % 360), 1.0, 0.5)
这行代码中的 k 的取值范围是 0~180,将其映射到 HSL 颜色空间中的色相上(360 度)。
全部代码如下:
// 程序名称:分形学 - Mandelbrot Set (曼德布洛特集)
// 编译环境:Visual C++ 6.0,EasyX_20200902
// 最后更新:2010-9-9
//
#include <graphics.h>
#include <conio.h>
/////////////////////////////////////////////////
// 定义复数及乘
...

该游戏是经典的涂格子游戏,很有挑战性。
执行效果如下:
源代码如下:
/**********************************************************
* 程序功能:涂格子游戏
* 程序版本: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
...

这是个高仿的扫雷游戏,游戏手感非常贴近原版。
代码由两个类构成,基类 Graph 对 IMAGE 进行绘制,同时生成界面,初始化相关数据。MineSweeper 类继承 Graph 类,主要进行相关操作,识别按钮等做出反应。
执行效果如下:
完整的游戏源码如下:
/*
程序名称:扫雷
简 介:一款经典的小游戏,程序运行中可以通过 ESC 直接退出
左键点击,右键标记和取消标记,同时按下左右或按下中间键触发提示
其他操作基本和官方一致,界面略有调整,详细操作自行测试
编译环境:VS2019 + EasyX_20190529(beta)
编写时间:2019-6-29
最后修改:2019-7-30
作 者:Teternity(qq1926594835)
版 权:作者原创,无抄袭,不涉及版权问题,仅用作学习
*/
// 头文件
#include <graphics.h>
#include <co
...

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

一个模拟引力的程序。可以在程序中创建不同质量和初始速度的天体,天体按照万有引力定律运行。
左键创建天体。按下左键不松开,天体质量会增加;然后移动,会给天体赋值初始速度,然后松开左键。
右键删除天体。
超出屏幕、碰撞后的天体不会消失。
程序的运行截图如下:
完整源代码、图片及编译后的可执行文件请【点击这里下载】。
作者:有时的迷惘
个人主页:www.baidu.com/p/有时的迷惘
这是一款由 shareli 自创规则的军旗游戏,具体的游戏规则如下:
棋盘大小:6×6。
棋子总数:36。
敌对双方:红,蓝。
棋子类别:红棋(红方操作,14 个),蓝棋(蓝方操作,14 个),紫棋(功能棋,8 个)。
红棋(蓝棋)类型:司令,军长,师长,旅长,团长,营长,连长,班长,军旗,工兵×2,炸弹×2。
紫棋类型:地雷×4,变身棋×4。
【规则说明】
- 司令最大,工兵最小,大的吃小的,一样就同归于尽,炸弹能炸紫棋和敌方除军旗外所有的棋(炸弹也会消失)。
- 工兵可挖地雷,挖完后可扛对方棋变身(挖的雷越多,变成的人物越厉害)。
- 人物棋可吃变,吃后能变成工兵~军长中的一种,有一定几率变成隐藏 BOSS。
- 人物棋可自杀(算一次操作)。
- 执棋方进行完一次有效操作后,就换对方执棋(边框颜色表当前执棋方)。
- 一方棋子(军旗除外)全被消灭,就算输; 同时全部没有,则和棋。
...

这是模仿球球大作战写的小游戏,有食物、敌人、外面的毒圈。
操作很简单,用 A S D W 四个键控制球的移动方向。
地图大小是屏幕的16倍,吃完所有敌人就胜利。记住不要被敌人吃掉哦!
想和我交流的可以加我 QQ:2190038793
贪婪球 2.0 做了许多升级,详见这里:https://codebus.cn/contributor/post/greedy-ball-2
执行效果如下:
完整的 VC++ 源代码如下:
///////////////////////////////////////////////////
// 程序名称:贪婪球 1.6
// 编译环境:Microsoft Visual studio 2017,EasyX_20200727
// 作 者:奶酪
// 邮 箱:2190038793@qq.com
// 发布日期:2019-2-10
// 最后修改:2019-2-15
//
#inc
...

用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
...