CodeBus

分享代码,一起进步~

做个纪念:椭圆组合而成的抽象图案

每次看到这个程序我就会想起高中时曾那么痴迷编程。当时看到一本书的封面有这个图案,就用那个时候学的 QuickBasic 写了这个程序。现在移植到 VC 上,做个纪念吧。 执行效果如下: 完整的 VC 源代码如下: // 程序名称:椭圆组合而成的抽象图案 // 编译环境:Visual C++ 6.0/2010,EasyX 2011惊蛰版 // 最初编写:1998-2-21,by yw80@qq.com(QuickBasic 版本) // 最后修改:2011-3-23,by yw80@qq.com // // 高中时候看到一本书的封面有这个图案,就用当时学的 QuickBasic 写了这个程序。 // 现在移植到 VC6 上,做个纪念。 // #include <graphics.h> #include <conio.h> #include <math.h> #define PI 3.1415926536 // 四舍五入 int round(double x) { return (int)(x < 0 ? x - 0.5 : x + 0.5... [更多...]

走迷宫程序(含自动迷宫生成)

这是一个传统的迷宫程序。 屏幕中只能看到迷宫的一小部分,右下角有游戏者在完整地图内的卫星定位点。 游戏执行效果如下: 程序间有足够多的注释,就不多作介绍了。代码如下: /////////////////////////////////////////////////// // 程序名称:迷宫 游戏 // 编译环境:Visual C++ 6.0 / 2010,EasyX 2013霜降版 // 作  者:krissi <zhaoh1987@qq.com> // 最后修改:2011-3-12 // #include <graphics.h> #include <time.h> ////////////////////////////////////////////////////// // 定义全局变量 // BYTE** g_aryMap = NULL; // 迷宫地图 SIZE g_szMap; // 迷宫地图的尺寸 IMAGE g_imgSight(360, 280); // 游戏的视野 RECT g_rtSight; ... [更多...]

经典游戏 贪吃蛇

经典游戏贪吃蛇。 源代码如下: //////////////////////////////////////////// // 程序名称:贪吃蛇 // 编译环境:Visual C++ 6.0 / 2010,EasyX_2011惊蛰版 // 程序编写:轻雨漫步 <512655756@qq.com> // 最后更新:2011-3-11 // //////////////////////////////////////////// //开始编写游戏需要的类 //////////////////////////////////////////// #include <graphics.h> //EasyX_2011惊蛰版(绘图库) #include <stdio.h> #include <conio.h> #include <time.h> #define UP 1 #define DOWN 2 #define LEFT 3 #define RIGHT 4 ///////////////////////////////////... [更多...]

[分形学] 基于 L 系统绘制 Hilbert (希尔伯特) 曲线

德国数学家 David Hilbert 发现了这样一种可以填满整个单位正方形的分形曲线,称它为 Hilbert 曲线。具体的我就不多做介绍了,相关内容请自己搜索。这里只说程序。 程序执行后,按数字键 1~8 可以显示相应阶数的 Hilbert (希尔伯特) 曲线,按 ESC 退出。 五阶 Hilbert (希尔伯特) 曲线的执行效果如下: 完整的程序源码如下: // 程序名称:Hilbert (希尔伯特)曲线 (基于 L 系统绘制) // 编译环境:Visual C++ 6.0,EasyX 2011惊蛰版 // 最后修改:2011-3-7 // #include <graphics.h> #include <conio.h> int g_len; // Hilbert 曲线的单位长度 // 递归绘制 Hilbert 曲线 void hilbert(LPCTSTR cmd, int level) { static BYTE d = 0; // 方向 static POINT c[4] = {1, 0, 0, -1, -1, 0, 0, 1}... [更多...]

吸顶灯上的一个图案,由若干圆弧组成

也不知道这个程序该叫什么名字,是我偶然间在一个吸顶灯的灯罩上看到的图案,于是就写了一个程序来生成。 执行效果如下: 完整的源代码如下: // 程序名称:圆弧组成的图案 // 编译环境:Visual C++ 6.0,EasyX 2011惊蛰版 // 最后修改:2011-3-7 // #include <graphics.h> #include <conio.h> #include <math.h> #define PI 3.1415926536 #define R 200 // 四舍五入 int Round(double x) { return (int)(x < 0 ? x - 0.5 : x + 0.5); } // 主函数 void main() { // 变量定义 int x, y; // 坐标 double a; // 弧度 // 绘图环境初始化 initgraph(640, 480); // 初始化图形窗口 setorigin(320, 240); // 设置坐标原点 setcolor(GREEN); //... [更多...]

万花尺(又叫万花规)模拟程序

万花尺相信很多人小时候都玩过吧,将一个满是齿牙的小圆套在一个大圆里面,用笔放进小圆的洞里,然后转圈圈画,就可以画出很多美丽有趣的图案。这个程序就是万花尺的模拟程序。 下面是几组数据和执行效果的抓图: //////////////////////////////////////////// // 程序名称:万花尺(又名万花规)模拟程序 // 编译环境:Visual C++ 6.0,EasyX 2011惊蛰版 // 程序编写:yangw80 <yw80@qq.com> // 最后更新:2011-2-26 // #include <graphics.h> #include <stdio.h> #include <conio.h> #include <math.h> #define PI 3.1415926536 void main() { int R; // 外部静圆半径 int r; // 内部动圆半径 int dr; // 内部动圆上的作图点到圆心的距离 begin: // 获取用户输入 printf("请... [更多...]

俄罗斯方块(Tetris) VC 源代码

童年的经典游戏~~ 。界面上没有做额外的修饰,需要的可以自己增加。执行效果如下: 上面的图是后来改的,下面这张是以前的执行效果。不知道这次的修改是不是对得起观众? 完整的 VC 源代码如下: //////////////////////////////////////////// // 程序名称:俄罗斯方块 // 编译环境:Visual C++ 6.0 / 2010,EasyX_v20131006(beta) // 程序编写:krissi <zhaoh1987@qq.com> // 更新记录:2010-12-18 zhaoh1987@qq.com 编写 //      2011-9-28 yw80@qq.com 修改了下落超时的逻辑 //      2013-10-7 zhaoh1987@qq.com 修改了绘制方法,将原来的立体效果修改为扁平效果 // #include <easyx.h> #include <conio.h> #include <time.h> ///////////////////////////////... [更多...]

模仿 Windows 屏保“变幻线 (Mystify)” VC 源代码

该程序模仿的 Windows 经典屏幕保护程序“变幻线”,并使用了面向对象技术编写,初学面向对象时可以作为参考。 程序中,由多个连续的节点构成一个顶点对象,由四个顶点构成一个多边形对象,主程序有两个多边形在各自运动。更详细的,请参考源代码。 源代码如下: // 程序名称:变幻线 // 编译环境:VC6 + EasyX v20100825 // 编 写 者:zh@easyx.cn // 编写日期:2010-11-25 // #include <graphics.h> #include <conio.h> #include <time.h> #define WIDTH 640 #define HEIGHT 480 #define MAXSTEP 9 // 节点(多个连续的节点环,组成一个顶点) struct POINTNODE { POINT pos; // 位置 POINTNODE* next; // 指向下一个节点的指针 }; // 顶点(四个顶点,组成一个多边形) class VERTEX { public... [更多...]

[分形学] 谢宾斯基 (Sierpinski) 三角形,也叫垫片

先说一个程序的实现过程: 随机生成 3 个点 P[0]、P[1]、P[2]; 随机生成 1 个点 P; 绘制点 P; 随机生成 [0, 2] 内的整数 n; 令 P = P 与 P[n] 的中点; 重复执行步骤 (3)~(5) 三万次。 这个程序很简单,虽然随机性很大,但是结果几乎是完全相似的,会是一个很有趣的图案,也就是传说中的谢宾斯基三角形。以上步骤就是生成谢宾斯基三角形的随机迭代法。 程序代码如下: (注:为了效果,将步骤(1)的三个点手动指定了。喜欢的话,可以将其修改为随机产生) // 程序名称:谢宾斯基(Sierpinski)三角形,也叫垫片 // 编译环境:Visual C++ 6.0,EasyX 2011惊蛰版 // 最后更新:2010-11-16 // #include <graphics.h> #include <conio.h> #include <time.h> void main() { srand((unsigned)time(NULL)); // 设置随机种子 POINT P[3] = {{320, 5... [更多...]

涂格子游戏(也叫点灯游戏)(by 豆腐果)

该游戏是经典的涂格子游戏,很有挑战性。 游戏运行效果: 完整的 VC 源代码如下: /********************************************************** * 程序功能:涂格子游戏 * 程序版本: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 102 #define USER_MBUTTONDOWN 103 /////////////////... [更多...]