
2048游戏(高仿版)

这是网上经常见的视觉错觉艺术图片,可以用程序生成的。效果如下:
完整的源代码如下:
///////////////////////////////////////////////////
// 程序名称:视觉错觉艺术图
// 编译环境:VS2010, EasyX_20200902
// 作 者:温良
// 最后修改:2021-1-24
//
#include <graphics.h>
#include <conio.h>
const double PI = 3.1415926536;
int main()
{
// 创建绘图窗口
initgraph(800, 560);
// 使用青绿色填充背景
setbkcolor(RGB(185, 230, 0));
cleardevice();
double b = 0;
for(int x = 20; x < 760; x += 48, b -= P
...
使用鼠标左键点击发射针,当两个针的夹角小于一定限制时,游戏结束。
这个游戏比较创新的地方就是可以用鼠标控制一个动态的过程,在循环中使用鼠标点击,并且鼠标消息不受延时函数的影响。以前写代码的时候,由于鼠标消息的原因,所以会选择多线程,但是参考了正确处理鼠标消息这篇文章,了解了鼠标消息的正确用法后,觉得有必要试试,就写了一个见缝插针游戏。我觉得学习不仅就是把别人的东西学会,而且需要在学习之后实践。
见缝插针游戏我只是写了一个大致的框架,重点是为了实践鼠标消息的处理,如果需要将这个游戏进一步开发,可以在针的转速,长短,以及在插在球上面针的数量上进行设置不同的关卡。
///////////////////////////////////////////////////
// 程序名称:见缝插针
...
单机版扫雷总会有些枯燥,不妨试试联网对战版扫雷!
开发环境:VS2019 + EasyX_20210115(beta)。
游戏玩法:左键按下翻开方块,翻开雷判输,或翻开最后一个方块判赢;逃跑或超时会结束本轮连接,正常结束会自动重新开局,对手不变。
目的:一方面提供联网对战版扫雷供大家娱乐,另外也是重构曾经写过的扫雷单机版,最后也为了练习 Windows 网络编程。
关于 Windows 网络编程书籍,推荐朱晨冰老师的《Visual C++ 2017 网络编程实战》,出版日期 2020 年。
个人感觉这本书讲解比较细致,内容也不会太老旧,有计网基础会更容易理解学习。
程序采用阻塞套接字编写,因此服务器免不了使用多线程,多线程部分由 C++11 提供。
想要让程序不限于局域网通信又不想购买服务器,这里推荐花生壳软件,操作简单,TCP 部分免费使用,相关内容自行搜索。
编写这个程序的想法来源于生活中的这个小游戏,一般商场等地方就会有这样的一个供路人来玩的“挑战六秒”的小小的装置。看谁能够准确的暂停到六秒整,感觉这个挺有意思,而且很锻炼人的反应能力和预判能力。其实编写这个“挑战六秒”程序的想法很早就产生了,但是由于各种原因,只能等到放假空闲下来编写。编写过程还算顺利,几乎是一气呵成,用了半天时间就编写成功了。
首先我需要将程序的框架构建成功,主要过程就是按键后程序能够结束循环并暂停。这个实现后接下来就是设计程序界面。以前设计界面我都是用尺子在纸上进行勾绘。最近我发现 CAD 其实更适用。使用 CAD 可以准确的设计布局,并且可以找准坐标。为了更加真实的模仿“挑战六秒”,我需要按照电子数字字体绘制数字。我将电子数字字体分成 7 个模块。并将每个模块单独的编写成函数,每个模块的绘制是比较耗费时间的,这 7 个模块可以根据不同的组合组成需要的数字。为了防止出现闪屏的情况,我使用覆盖的方法将每次产生的数字
...这是一个模拟了微信跳一跳的简单小游戏(2D版),游戏中可以通过长按空格操作小人跳跃以往前行进。
https://github.com/zouhuidong/JumpAndJump
该数独有两种玩法,其一为标准数独,另一为对角线数独。标准数独规则每一行、每一列、每一个粗线宫内的数字均含1-9,不重复;而对角线数独,其相对于标准数独来说就是多了一个条件,即要求两条对角线上的数字分别均含数字1-9,不重复。
PS:设立三种难度,分别根据”完成时间”和”填错次数”来评分。
由于我本人能力有限,该小项目是单纯用C和EasyX来实现的,好像并没有涉及高级的算法,基本上都是暴力算法(不用找了,我生成一个数独没有用到回溯法;你看过我的GameInit函数就知道了,没看过的我可以告诉你,其实就是用一个模板,再通过简单的转换,得到一个新的数独)。
因为这仅仅是个作业,而且期末需要预习了,所以我能花的时间不能太多,诸如数独的“提示”“笔记”等功能我想想还是算了,留到以后有时间再来完善。
做这个的初心还是想扎实一下自己的编程语言语法基础,培养项目工程化的思想。当然一路下来BU
...CosmoRun是NoSixFive游戏工作室发布在Windows应用商店的一款魔性小游戏,觉得特别好玩所以仿做了一个。它的操作十分简单,点击鼠标可以让小球转向,控制小球在一个方块组成的世界中漫游~
仓库地址:https://github.com/Nomango/CosmoRun-EasyX
编译环境:VS2010及以上
代码行数:1800+
由于这个游戏是16年4月份写的,当时我对游戏框架并不了解,完全按照自己的想法进行设计,注释写的很少,还有特别多的数字计算,所以代码阅读起来非常困难,尤其是Floor这个类,随机创建地板的算法复(hun)杂(luan)到我自己都不想再看见它…
main.cpp:
主函数,程序入口。创建了一个GameUI对象,运行StartUI函数进入游戏界面。
GameAfx.h
包含了所有头文件,并对游戏中的常量
发现EasyX 图形库上用图像缩放模糊的,需要最近邻内插方法,实现放大像素图像
在上写最近邻内插的NearestNeighborImage函数,只能图像缩放越清晰
图像缩放解决了,只能放大红甜椒贴图的
执行效果:
半透明贴图的png文件下载:
red_sweet_pepper.zip
///////////////////////////////////////////////
// 程序名称:支持 Alpha 信息图片最近邻内插
// 编译环境:Visual C++ 2019,EasyX_20200902
// 作者:豆焰(beanflame)
// QQ:2962672241
// 邮箱:beanflame@163.com
// 最后修改:2020-10-18
//
#include <easyx.h> // 引用图形库头文件
#include <con
...
以前写过关于 TIN 三角网的程序,若要了解它的算法,可以去查看TIN三角网的生成 ,里面有相关介绍。很多东西都是先想到,然后才去想办法去做。以前有天圆地方的说法,人们认为天是圆一个球形,而地是一个方方正正的平面。这就是人们在认知的一个过程。TIN 三角网往小了讲,是分布在一个平面上,往大了讲,是分布在一个球面上。
人之所以能够发展,是因为人一直在学习,在思考,在想象,在创新。TIN 三角网是在一个平面上进行拓展的,两点间的距离可以通过 x 与 y 进行推导,空间中的两点间的距离可以通过 x y z 进行推导,要实现 TIN 三角网立体化,我需要做的就是将平面的坐标拓展为立体坐标,TIN 三角网里面比较核心的算法就是通过三个点确定圆心,很多人觉得这个很简单,不屑于去思考,认为不就是做两个中垂线,交点就是圆心。从来不去实事求是的列公式,不实践就永远发现不了问题,还洋
...这个项目是游戏《我的世界》中的红石模拟器。
程序由两个窗口组成,一个是用来输入的 cmd 窗口,另一个是用来显示地图的绘图窗口。
执行效果:
这是一个3x6点阵灯,显示着字母A。
尽管这个模拟器是平面的,但他仍然可以实现许多在 Minecraft 中可以实现的东西,此处不再举例,release中有map文件夹,里面有预设的地图,可以参考。
更多内容请在程序中输入help指令查看帮助。
下载链接:https://github.com/zouhuidong/MinecraftRedstoneSimulate/
这是一个策略养成小游戏,虽然几乎谈不上策略。本人蒟蒻一只,代码问题以后会慢慢修改
“我”在一片丛林中迷迷糊糊地醒来,看了看周围杂草丛生的环境,瞪大了眼睛:“我不是在床上睡觉吗!!这什么鬼地方!!”。“我”急忙从地上站了起来,活动活动了全身酸软的肌肉,开始疯狂的破坏。在过了一个多小时的冷静后,“我”终于得出结论——我穿越了。。。
在一个多小时的破坏后,我整理了我现在拥有的物品——睡衣......然后没了,就只有睡衣。但是正当我绝望之时,我看见了一个破茅棚,旁边有一个小湖泊、一颗果树和一本书......一本写着召唤之书四个大字的破书... ...
我带着满心的疑惑,打开了这本烂让人无法直视的的“召唤之书”。这本破
...一款基于贪吃蛇的小游戏, 加入了多种有特殊效果的食物, 可以控制蛇向八个方向移动.
这是本系列游戏的第三版, 使用了 EasyX 的图形库, 并增加了鼠标操作.
此程序是对绘图和鼠标操作的进一步练习, 是对多态与类继承的初步学习.
VC++6.0
EasyX 2018 春分版
startup.h -- 一些全局变量
startup.cpp -- 游戏主程序
game.h -
...这是用 C++ 写的益智小游戏“交叉线”(源码在底部)。
本程序的核心在于判断线段是否交叉,需要两种算法:快速排斥实验和跨立实验