图片转化为 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,做成一个很实用的小小的软件,但是让一个东

...

贪吃蛇的核心代码(by shareli) 铜牌收录

贪吃蛇的核心代码,很精简。

完整源代码如下:

///////////////////////////////////////////////////
// 程序名称:贪吃蛇的核心代码
// 编译环境: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	// 定义表示方向的枚举变量
...

力学:模拟弹力的小程序(by frxyz1) 铜牌收录

一个模拟弹力的小程序,执行效果如下:

感兴趣的可以再加上几个小球,类似的还可以模拟出绳子的效果。

以下是全部源代码:

///////////////////////////////////////////////////
// 程序名称:模拟弹力的小程序
// 编译环境: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, 
...

力学:模拟橡皮筋(by frxyz1) 铜牌收录

一个模拟橡皮筋的程序。

执行效果:

以下是全部源代码:

///////////////////////////////////////////////////
// 程序名称:模拟橡皮筋
// 编译环境: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 (曼德布洛特集) VC 源代码 铜牌收录

关于 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>

/////////////////////////////////////////////////
// 定义复数及乘
...

涂格子游戏(也叫点灯游戏)(by 豆腐果) 铜牌收录

该游戏是经典的涂格子游戏,很有挑战性。

执行效果如下:

 

源代码如下:

/**********************************************************
 * 程序功能:涂格子游戏
 * 程序版本: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
...

扫雷(WinXP 扫雷的高仿版) 金牌收录

这是个高仿的扫雷游戏,游戏手感非常贴近原版。

代码由两个类构成,基类 Graph 对 IMAGE 进行绘制,同时生成界面,初始化相关数据。MineSweeper 类继承 Graph 类,主要进行相关操作,识别按钮等做出反应。

执行效果如下:

完整的游戏源码如下:

/*
	程序名称:扫雷

	简  介:一款经典的小游戏,程序运行中可以通过 ESC 直接退出
			 左键点击,右键标记和取消标记,同时按下左右或按下中间键触发提示
			 其他操作基本和官方一致,界面略有调整,详细操作自行测试

	编译环境:VS2019 + EasyX_20190529(beta)

	编写时间:2019-6-29
	最后修改:2019-7-30

	作  者:Teternity(qq1926594835)

	版  权:作者原创,无抄袭,不涉及版权问题,仅用作学习
*/

// 头文件
#include <graphics.h>
#include <co
...

万年历(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 年份加 100, d 年份减 100								*
 * r 年份
...

背井离乡(by 萌新) 铜牌收录

上大学一学期了,有点想家。

突发奇想,花了一天的时间,用 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
...

汉诺塔移动动画(by Ronald) 铜牌收录

汉诺塔问题源自印度一个古老的传说,印度教的“创造之神”梵天创造世界时做了 3 根金刚石柱,其中的一根柱子上按照从小到大的顺序摞着 64 个黄金圆盘。梵天命令一个叫婆罗门的门徒将所有的圆盘按照规则移动到另一个柱子上。这个程序就是该经典问题的动画演示。

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

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

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

右键删除天体。

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

程序的运行截图如下:

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

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

自创规则的军旗游戏(by shareli) 铜牌收录

这是一款由 shareli 自创规则的军旗游戏,具体的游戏规则如下:

棋盘大小:6×6。
棋子总数:36。
敌对双方:红,蓝。
棋子类别:红棋(红方操作,14 个),蓝棋(蓝方操作,14 个),紫棋(功能棋,8 个)。
红棋(蓝棋)类型:司令,军长,师长,旅长,团长,营长,连长,班长,军旗,工兵×2,炸弹×2。
紫棋类型:地雷×4,变身棋×4。

【规则说明】

  1. 司令最大,工兵最小,大的吃小的,一样就同归于尽,炸弹能炸紫棋和敌方除军旗外所有的棋(炸弹也会消失)。
  2. 工兵可挖地雷,挖完后可扛对方棋变身(挖的雷越多,变成的人物越厉害)。
  3. 人物棋可吃变,吃后能变成工兵~军长中的一种,有一定几率变成隐藏 BOSS。
  4. 人物棋可自杀(算一次操作)。
  5. 执棋方进行完一次有效操作后,就换对方执棋(边框颜色表当前执棋方)。
  6. 一方棋子(军旗除外)全被消灭,就算输; 同时全部没有,则和棋。
...

贪婪球(by 奶酪) 铜牌收录

这是模仿球球大作战写的小游戏,有食物、敌人、外面的毒圈。

操作很简单,用 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
...

一个简单的小游戏:盒子接球(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
...