代码分享

================

数独

功能概述

该数独有两种玩法,其一为标准数独,另一为对角线数独。标准数独规则每一行、每一列、每一个粗线宫内的数字均含1-9,不重复;而对角线数独,其相对于标准数独来说就是多了一个条件,即要求两条对角线上的数字分别均含数字1-9,不重复。

PS:设立三种难度,分别根据”完成时间”和”填错次数”来评分。

作者前言

由于我本人能力有限,该小项目是单纯用C和EasyX来实现的,好像并没有涉及高级的算法,基本上都是暴力算法(不用找了,我生成一个数独没有用到回溯法;你看过我的GameInit函数就知道了,没看过的我可以告诉你,其实就是用一个模板,再通过简单的转换,得到一个新的数独)。

因为这仅仅是个作业,而且期末需要预习了,所以我能花的时间不能太多,诸如数独的“提示”“笔记”等功能我想想还是算了,留到以后有时间再来完善。

做这个的初心还是想扎实一下自己的编程语言语法基础,培养项目工程化的思想。当然一路下来BU

...

益智小游戏:交叉线

这是用 C++ 写的益智小游戏“交叉线”(源码在底部)。

本程序的核心在于判断线段是否交叉,需要两种算法:快速排斥实验和跨立实验

包含十三个文件

  • Head.h : 初始化头文件
  • Cross Line.cpp : 程序开端文件
  • Game_Class.h : 游戏类头文件
  • Game.cpp : 游戏类文件
  • Begin.cpp : 初始界面类实现文件
  • Level.cpp : 关卡界面类实现文件
  • Play.cpp : 游戏界面类实现文件
  • Win.cpp : 过关界面类实现文件
  • About.cpp : 关于项目类实现文件
  • Point.cpp : 点的结构类实现文件
  • Line.cpp : 
...

迷宫小游戏

基于 EasyX 的迷宫小游戏,有三种随机生成算法。

包含九个文件

  • Maze.h : 初始化头文件
  • Maze.cpp : 程序开端文件
  • Game.h : 游戏类头文件
  • Adventrue.cpp : 冒险模式类文件
  • Forest.cpp : 冒险模式-森林系列类实现文件
  • Dungeon.cpp : 冒险模式-地牢系列类实现文件
  • Infernal.cpp : 冒险模式-地狱系列类实现文件
  • Help.cpp : 帮助信息类实现文件
  • Other.cpp : 刷新界面、放置按钮、输出对话框类实现文件

包含算法

  • 森林系列:Prim 算法
  • 地牢系列:图论 DFS 算法
  • 地狱系列:暴力 DFS 算法

算法说明

以下对这些算法给出简单说明,详细请自行学习(比较有难度):

...

FlipGame

FlipGame,又名点灯游戏,是一个十分有趣的智力游戏:有一行 N 行 N 列的灯,开始时全部是灭的,当你点击其中一盏灯时他的上下左右(若存在的话)状态全部改变,现在要求你以最少地步数,将全部的灯点亮。
此处使用了 8 x 8 的方格,其亮灭状态使用一个 8 字节变量按位记录,点亮状态使用了图片作为背景。

执行效果如下:

项目使用 VS2017 编译,图片内嵌到了资源文件中,并设置了应用图标。

【Git项目地址】

【压缩包】

兰顿蚂蚁

受到生命游戏启发,想到了这个兰顿蚂蚁,都是零玩家游戏。

在平面上的正方形格被填上黑色或白色。在其中一格正方形有一只“蚂蚁”,它的头部朝向上下左右其中一方。
若蚂蚁在白格,右转90度,将该格改为黑格,向前移一步;
若蚂蚁在黑格,左转90度,将该格改为白格,向前移一步。

以上就是兰顿蚂蚁的简单规则描述。更详细的请参考维基百科。

执行效果如下:

完整的源代码如下:

/******************************
 * 兰顿蚂蚁
 * 编译环境:VC++ 2017
 * 作者:that boy,2018/12/19
 * 最后修改:2018/12/21
 ******************************/

#include <EasyX.h>
#include <string>
#include <conio.h&
...

模拟 FC 游戏:经典红白机坦克大战

一款模仿红白机坦克大战的小游戏。

编译环境:Visual C++ 2019,EasyX_20200109(beta)

项目源码地址:https://github.com/xiongfj/FC-Tank

Release 下载:https://github.com/xiongfj/FC-Tank/releases/download/1.1/Release.7z

代码片段:

#include "stdafx.h"
#include "struct.h"
#include "SelectPanel.h"
#include "GameControl.h"
#include "MciSound.h"

#define ONE_PLAYER	1		// 不能修改该值!! 已经用于数组下标!!
#define TWO_PLAYER	2
...

模拟 FC 游戏:快打旋风

该游戏模拟的红白机经典游戏快打旋风。

该程序的编译环境:vc6.0 / vs2010 + EasyX_v20130322(beta)。

游戏运行抓图如下:

游戏原代码一万四千多行,另有多张图片和音乐,【点击这里下载全部源代码】。

祝福烟花

你是否还在苦恼朋友生日时一条简单的祝福短信不够分量嚒?

你是否还在犹豫如何在现实中诚心诚意地表达自己的感情嚒?

那么看了该文章,相信只要是心里有爱的盆友都会灵光乍现,

加上自己的创意,给你的 TA 送去属于你自己的祝福烟花吧!

动画运行截图:

完整的动画 VC++ 源代码下载:

vc6.0 版:<点击这里下载>

vs2019 版:<点击这里下载>(如果无法解压,请使用 7z 解压)

涂格子

涂格子游戏。游戏规则

  1. 单击空格子,同时给上下中左右的空格子换色。
  2. 全部格子都上完颜色过关。
  3. 按任意键退出游戏。
  4. 右击重来,Ctrl 作弊键。

以下是该游戏的 VC++ 源代码:

/****************************************************************
 *																*
 *	程序名称:	《涂格子游戏》									*
 *	编译环境:	VC++6.0 && && EasyX_v20120603b					*
 *	作者相关:	Made In China by xiongfj <837942056@qq.com>		*
 *	最后修改:	2012.09.12										*
 *																*
 *****************************
...