诺基亚经典贪吃蛇
纯代码实现的经典贪吃蛇。相信贪吃蛇是不少人儿时的美好记忆。诺基亚的像素版贪吃蛇,曾经风靡一时。今天,我用 EasyX 实现了它。操作方法:可通过 wasd 或上下左右键控制蛇的移动;通过食物的成员函数 color 将吃掉食物后增加的节颜色设定为吃掉食物的颜色;每得 500 分,增加一个食物,但食物总数不超过 10 个;撞墙或撞到自己即为死亡。这是本人第一次发表代码,且本人为初中生,如有可改进之处欢迎提出建议!
纯代码实现的经典贪吃蛇。相信贪吃蛇是不少人儿时的美好记忆。诺基亚的像素版贪吃蛇,曾经风靡一时。今天,我用 EasyX 实现了它。操作方法:可通过 wasd 或上下左右键控制蛇的移动;通过食物的成员函数 color 将吃掉食物后增加的节颜色设定为吃掉食物的颜色;每得 500 分,增加一个食物,但食物总数不超过 10 个;撞墙或撞到自己即为死亡。这是本人第一次发表代码,且本人为初中生,如有可改进之处欢迎提出建议!

基于 EasyX 的五子棋程序。
界面依旧,唯一不同的是算法。改进前的 AI 眼光短浅,只顾当前局面。改进后的 AI 使用 DFS(深度优先搜索)进行对博弈树的遍历,再挑选分值最大的根节点进行落子。具体的,就是先算出每个点的当前分值,再递归去寻找落子后对方分值,把这两个值相减,就可以得到这个位置真正的分值。
可是如果直接递归,时间复杂度很大,大约是 O((192)n)( n 为递归次数),于是就加入了两个剪枝(只查找周边有棋子的空位)(如果位置初始分值大于最大分值才递归)和层数限制(只考虑以后4步)。
改进后基本1秒就可以算出来。
运行效果如下:
完整源代码如下:
////////////////////////////////////////////////////////
// 程序名称:博弈五子棋
// 编译环境:Visual C++ 2019 EasyX_2020-3-15(beta)
// 作 者:陈可佳 &l...

基于 EasyX 的五子棋软件。
算法部分想了很久,也参考了网上的其他游戏的。原理主要就是:遍历每个空闲的点,根据下在那个点后连成的棋形来判断其分值,再选出分值最高的位置并返回给游戏函数。
还在上小学,更深层次的判定算法还没学,就先将就一下吧。
运行效果如下:
完整源代码如下:
////////////////////////////////////////////////////////
// 程序名称:博弈五子棋
// 编译环境:Visual C++ 2019 EasyX_20190529(beta)
// 作 者:陈可佳 <emil09_chen@126.com>
// 最后修改:2019-9-30
//
#include <iostream>
#include <time.h>
#include <stdlib.h>
#include <graphics.h>
#in...

游戏玩法:从第一个小球出发,按鼠标左键发射射线连接第二个小球,直到重新连接到第一个小球,形成闭环游戏过关。
游戏难度逐关递增。第一关小球位置随机,第二关球更小更多,第三关球会移动。
游戏运行截图如下:
该游戏的编译环境:Visual C++ 2008,EasyX_20190314(beta)
全部游戏源代码【请点击这里下载】。

迷宫程序。执行效果如下:
程序间有足够多的注释,就不多作介绍了。代码如下:
///////////////////////////////////////////////////
// 程序名称:迷宫 游戏
// 编译环境: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_rtSigh...

这是一个用来模拟老年机上贪吃蛇游戏的游戏,简谱的画面希望能够给大家带来童年的回忆。当然,难度自然会比老年机上的游戏难一些,希望大家做好准备,开始游戏吧!
作者信息:邮箱 mzh1772@163.com,2007 年出生,有错误欢迎提出。
** **按方向键控制蛇的方向,ESC 键暂停游戏,吃到一个食物加 1 分,碰到墙壁或蛇自己结束游戏。
/*
名称: 老年贪吃蛇
作者: 梅朱赫(QQ:3406077232)
环境: Vs2019-C++空项目模板-32位
拓展包:EasyX_20200315(beta)
时间: 2020-04
*/
#include <ctime>
#include <cstdlib>
#include <list>
#include ...

只需点击就可以盖木头,只要木头和木头没有完全对齐,就会自动截取超过木头的宽度,看看你能盖多少层。
游戏称号如下:
源码下载

这是一个策略养成小游戏,虽然几乎谈不上策略。本人蒟蒻一只,代码问题以后会慢慢修改
“我”在一片丛林中迷迷糊糊地醒来,看了看周围杂草丛生的环境,瞪大了眼睛:“我不是在床上睡觉吗!!这什么鬼地方!!”。“我”急忙从地上站了起来,活动活动了全身酸软的肌肉,开始疯狂的破坏。在过了一个多小时的冷静后,“我”终于得出结论——我穿越了。。。
在一个多小时的破坏后,我整理了我现在拥有的物品——睡衣......然后没了,就只有睡衣。但是正当我绝望之时,我看见了一个破茅棚,旁边有一个小湖泊、一颗果树和一本书......一本写着召唤之书四个大字的破书... ...
我带着满心的疑惑,打开了这本烂让人无法直视的的“召唤之书”。这本破书的第一页正上方赫然写着三个大字——哥布林......
(背景故事,文笔极差,随便看看)
最开始想做这个游戏是因为在疫情期
...
这是一个传统的贪吃蛇游戏,基于链表实现
界面设计参考了 https://codebus.cn/aknoi/a/snake

Player1 玩家通过 W、S 按键控制左板上下移动,Player2 玩家通过 O、L 按键控制右板上下移动。在游戏过程中,小球的速度会随着接触木板的次数增加而加快,增加游戏难度。当小球没有碰到木板时游戏结束。
///////////////////////////////////////////////////
// 程序名称:双人击球游戏
// 编译环境:VS2010,EasyX_20200902
// 作 者:温良
// 最后修改:2021-1-31
//
#include <graphics.h>
#include <conio.h>
int main()
{
initgraph(640, 480);
srand(GetTickCount());
setbkcolor(WHITE);
cleardevice();
setfillcolor(BLACK);
se...

使用鼠标左键点击发射针,当两个针的夹角小于一定限制时,游戏结束。
这个游戏比较创新的地方就是可以用鼠标控制一个动态的过程,在循环中使用鼠标点击,并且鼠标消息不受延时函数的影响。以前写代码的时候,由于鼠标消息的原因,所以会选择多线程,但是参考了正确处理鼠标消息这篇文章,了解了鼠标消息的正确用法后,觉得有必要试试,就写了一个见缝插针游戏。我觉得学习不仅就是把别人的东西学会,而且需要在学习之后实践。
见缝插针游戏我只是写了一个大致的框架,重点是为了实践鼠标消息的处理,如果需要将这个游戏进一步开发,可以在针的转速,长短,以及在插在球上面针的数量上进行设置不同的关卡。
///////////////////////////////////////////////////
// 程序名称:见缝插针
// 编译环境:Mictosoft Visual Stu...

编写这个程序的想法来源于生活中的这个小游戏,一般商场等地方就会有这样的一个供路人来玩的“挑战六秒”的小小的装置。看谁能够准确的暂停到六秒整,感觉这个挺有意思,而且很锻炼人的反应能力和预判能力。其实编写这个“挑战六秒”程序的想法很早就产生了,但是由于各种原因,只能等到放假空闲下来编写。编写过程还算顺利,几乎是一气呵成,用了半天时间就编写成功了。
首先我需要将程序的框架构建成功,主要过程就是按键后程序能够结束循环并暂停。这个实现后接下来就是设计程序界面。以前设计界面我都是用尺子在纸上进行勾绘。最近我发现 CAD 其实更适用。使用 CAD 可以准确的设计布局,并且可以找准坐标。为了更加真实的模仿“挑战六秒”,我需要按照电子数字字体绘制数字。我将电子数字字体分成 7 个模块。并将每个模块单独的编写成函数,每个模块的绘制是比较耗费时间的,这 7 个模块可以根据不同的组合组成需要的数字。为了防止出现闪屏的情况,我使用覆盖的方法将每次产生的数字进行覆盖。为了更加精确,我使用了精确延时。至于颜色搭配和布局设计这种,这
...某天突然来兴趣了,就写了这么个打字母的小程序,就是以前学习机上那种字母往下掉,然后按相应键字母消失的游戏。
程序不长,尤其很大篇幅都是开始和结束的文字绘制,除去这些没几行代码了,感觉做个范例还是很有用的。
又补了个小特效,加了点注释,凑了整 100 行~
////////////////////////////////////////////
// 程序名称:打字母游戏
// 编译环境:Visual C++ 6.0 / 2010,EasyX_20200902
// 程序编写:yangw80 <yw80@qq.com>
// 发布日期:2010-8-26
//
#include <graphics.h>
#include <conio.h>
#include <time.h>
// 欢迎界面
void welcome()
{
// 输出屏幕提示
cleardevice();
settextcolor(YELLOW);
sett...

该数独有两种玩法,其一为标准数独,另一为对角线数独。标准数独规则每一行、每一列、每一个粗线宫内的数字均含1-9,不重复;而对角线数独,其相对于标准数独来说就是多了一个条件,即要求两条对角线上的数字分别均含数字1-9,不重复。
PS:设立三种难度,分别根据”完成时间”和”填错次数”来评分。
由于我本人能力有限,该小项目是单纯用C和EasyX来实现的,好像并没有涉及高级的算法,基本上都是暴力算法(不用找了,我生成一个数独没有用到回溯法;你看过我的GameInit函数就知道了,没看过的我可以告诉你,其实就是用一个模板,再通过简单的转换,得到一个新的数独)。
因为这仅仅是个作业,而且期末需要预习了,所以我能花的时间不能太多,诸如数独的“提示”“笔记”等功能我想想还是算了,留到以后有时间再来完善。
做这个的初心还是想扎实一下自己的编程语言语法基础,培养项目工程化的思想。当然一路下来BUG必不可少,但正如老子所言:“合抱之木,生于毫末;九层之台,起于垒土;千里之行,始于足下。”脚踏
...