CodeBus

分享代码,一起进步~

视觉错觉艺术4

这是网上经常见的视觉错觉艺术图片,可以用程序生成的。效果如下: 完整的源代码如下: /////////////////////////////////////////////////// // 程序名称:基于 Bresenham 算法画圆 // 编译环境:Visual C++ 6.0 / 2013,EasyX 20140321(beta) // 作  者:yangw80 <yw80@qq.com> // 最后修改:2014-7-14 // #include <graphics.h> #include <conio.h> // 定义回调 void (*callback)(int x, int y); // 画方块上的小方块 void DrawSmallBox(int x, int y, bool lt, bool rt, bool lb, bool rb) { int nx = x * 26 - 13; int ny = y * 26 - 13; if (lt) solidrectangle(nx + 1, ny + 1, nx +... [更多...]

视觉错觉艺术3

这是网上经常见的视觉错觉艺术图片,可以用程序生成的。效果如下: 完整的源代码如下: /////////////////////////////////////////////////// // 程序名称:视觉错觉艺术3 // 编译环境:Visual C++ 6.0 / 2013,EasyX 20140321(beta) // 作  者:yangw80 <yw80@qq.com> // 最后修改:2014-7-14 // #include <graphics.h> #include <conio.h> // 定义回调 void (*callback)(int x, int y); // 圆中的每个点(回调函数) void CirclePoints(int x, int y) { if (x < y) { COLORREF c1 = getpixel(x, y); COLORREF c2 = getpixel(y, x); putpixel(x, y, c2); putpixel(y, x, c1); } } /... [更多...]

别踩白块儿(双人版) VC 源代码

这就是当前十分流行的游戏“别踩白块儿”的双人版,两个人可以同时进行游戏。 默认情况下,喜羊羊的四个按键是 asdf,灰太狼的四个按键是 jkl;,可以在代码中修改。 以下是游戏截图: 以下是完整的游戏源代码,在 VC6.0 和 VC2013 下面测试通过: /////////////////////////////////////////////////// // 程序名称:别踩白块儿(双人版) VC 源代码 // 编译环境:Visual C++ 6.0、2013,EasyX 20140321(beta) // 作  者:yangw80 <yw80@qq.com> // 最后修改:2014-5-26 // #undef UNICODE #undef _UNICODE #include <graphics.h> #include <conio.h> #include <stdio.h> #include <time.h> #define MAXTASK 50 // 定义游戏需要完成的黑块数... [更多...]

贪吃蛇

一个比较新颖的贪吃蛇程序。 用左右表示蛇向左转或向右转,上用来加速。 源代码如下: /////////////////////////////////// // 程序名称:贪吃蛇 // 编译环境:Visual C++ 6.0 / 2008,EasyX 2013冬至版 // 作者:王垣恒 QQ:646361765 // 最后修改:2014-5-20 // 操作方式:以蛇为第一视角,左 左转;右 右转;下 暂停;上 快进。 // 状态: 黄色 蛇头;红色 蛇身;绿色 食物。 #include <graphics.h> #include <string.h> #include <time.h> #define NUM_R 10 //半径 #define NUM_X 25 //横向个数 #define NUM_Y 25 //纵向个数 #define NUM 30 //所需节点个数 void exe(int x,int y,int f); int GetCommand(); void eat(int x,int y); void clear(); ... [更多...]

多个小球在方框内的碰撞运动

本程序模拟了多个小球在方框内的碰撞运动。 源代码如下: /////////////////////////////////////////////////// // 程序名称:多个小球在方框内的碰撞运动 // 编译环境: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); // 转换成常用的坐标 } // 判定是否发生二维平面小球完全弹性碰撞(速度较大) // (当速度很小时,不服从。因为计算后的结果因为保... [更多...]

视觉错觉艺术2

这是网上经常见的视觉错觉艺术图片,可以用程序生成的。效果如下: 完整的源代码如下: /////////////////////////////////////////////////// // 程序名称:视觉错觉艺术2 // 编译环境:Visual C++ 6.0,EasyX 2013霜降版 // 作  者:yangw80 <yw80@qq.com> // 最后修改:2013-12-16 // #include <graphics.h> #include <conio.h> // 定义常量 #define UNIT 24 #define OFFSET_X 116 #define OFFSET_Y 36 // 画装饰花 void DrawUnit(int x, int y, int shape) { // 设置颜色 int n = ((shape & 1) ? 1 : 0) + ((shape & 2) ? 1 : 0) + ((shape & 4) ? 1 : 0); setlinecolor((n % 2 ==... [更多...]

视觉错觉艺术1

这是网上经常见的视觉错觉艺术图片,可以用程序生成的。效果如下: 完整的源代码如下: /////////////////////////////////////////////////// // 程序名称:视觉错觉艺术1 // 编译环境:Visual C++ 6.0,EasyX 2013霜降版 // 作  者:yangw80 <yw80@qq.com> // 最后修改:2013-12-16 // #include <graphics.h> #include <conio.h> // 定义常量 #define UNIT 15 #define OFFSET_X 122 #define OFFSET_Y 23 // 画每个小单元 void DrawUnit(int x, int y, int shape) { // 定义颜色 static COLORREF c[4] = {0x0000ff, 0x0077ff, 0x00ddff, 0x0077ff}; // 画背景白色角块 setfillcolor(WHITE); switch(shap... [更多...]

一个简单的小游戏:盒子接球

用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.h> // 定义常量 #define NUM 10 #define CMD_LEFT 1 #define C... [更多...]

游戏:矿井逃生

游戏说明: 矿井里的电路又出问题了。迅速借助你的头灯,在漆黑的矿井里找到出口逃出去吧。 控制说明: 方向键:移动A/S/D/W:移动鼠标:控制照射方向F2:重来一局ESC:退出游戏就不放抓图了,有兴趣的编译运行一下代码看看效果吧。 以下是全部源代码: /////////////////////////////////////////////////// // 程序名称:矿井逃生 // 编译环境:Visual C++ 6.0 / 2010,EasyX 2013霜降版 // 作  者:yangw80 <yw80@qq.com> // 最后修改:2013-11-15 // #include <easyx.h> #include <time.h> #include <math.h> #include <stdio.h> // 定义常量 #define PI 3.141592653589 // 圆周率 #define UNIT_GROUND 0 // 表示地面 #define UNIT_WALL 1 // 表示墙... [更多...]

计算任意扇形的最小外包矩形

今天很偶然需要这样一个东西: 求任意扇形的最小包围矩形,要求矩形的边是水平、垂直的。 这个东西看似很简单,但是仔细一想,需要注意的地方蛮多的,还真有点不好下手。再回想一下,好像没有那本书里面讲过。然后百度了一下,似乎也没找到有效的方法。于是我就花了点时间搞定了这个东西,然后顺手写了一个例子演示效果。 如果您有更好的方法,十分期待交流一下。 以下代码除了包含必要的求解任意扇形的最小包围函数之外,还加上了鼠标操作:按下左键移动鼠标,可以调整终止角的弧度;同时按下 Shift 键移动,可以调整起始角的弧度。 执行效果如图: 完整代码如下: /////////////////////////////////////////////////// // 程序名称:计算扇形的最小包围矩形 // 编译环境:Visual C++ 6.0 / 2010,EasyX 2013霜降版 // 作  者:yangw80 <yw80@qq.com> // 最后修改:2013-11-14 // #include <graphics.h> #include <math.h> #in... [更多...]