数独 铜牌收录

功能概述

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

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

作者前言

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

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

做这个的初心还是想扎实一下自己的编程语言语法基础,培养项目工程化的思想。当然一路下来BUG必不可少,但正如老子所言:“合抱之木,生于毫末;九层之台,起于垒土;千里之行,始于足下。”脚踏

...

CosmoRun - 宇宙漫步 金牌收录

说明

CosmoRun是NoSixFive游戏工作室发布在Windows应用商店的一款魔性小游戏,觉得特别好玩所以仿做了一个。它的操作十分简单,点击鼠标可以让小球转向,控制小球在一个方块组成的世界中漫游~

游戏截图

代码概况

仓库地址:https://github.com/Nomango/CosmoRun-EasyX

编译环境:VS2010及以上

代码行数:1800+

由于这个游戏是 16 年 4 月份写的,当时我对游戏框架并不了解,完全按照自己的想法进行设计,注释写的很少,还有特别多的数字计算,所以代码阅读起来非常困难,尤其是 Floor 这个类,随机创建地板的算法复(hun)杂(luan)到我自己都不想再看见它…

源文件和类说明

  • main.cpp:主函数,程序入口。创建了一个 GameUI 对象,运行 StartUI 函数进入游戏界面。
  • GameAfx.h:
...

立体多面体旋转 铜牌收录

立体多面体旋转说明

思路

以前写过关于 TIN 三角网的程序,若要了解它的算法,可以去查看TIN三角网的生成 ,里面有相关介绍。很多东西都是先想到,然后才去想办法去做。以前有天圆地方的说法,人们认为天是圆一个球形,而地是一个方方正正的平面。这就是人们在认知的一个过程。TIN 三角网往小了讲,是分布在一个平面上,往大了讲,是分布在一个球面上。

解决方案

人之所以能够发展,是因为人一直在学习,在思考,在想象,在创新。TIN 三角网是在一个平面上进行拓展的,两点间的距离可以通过 x 与 y 进行推导,空间中的两点间的距离可以通过 x y z 进行推导,要实现 TIN 三角网立体化,我需要做的就是将平面的坐标拓展为立体坐标,TIN 三角网里面比较核心的算法就是通过三个点确定圆心,很多人觉得这个很简单,不屑于去思考,认为不就是做两个中垂线,交点就是圆心。从来不去实事求是的列公式,不实践就永远发现不了问题,还洋洋得意,自以为是。如果解决了平面三点确定圆心的问题,接下就需要创新的就是空间三点确定圆心。我们学的高数,线性代数,以

...

我的世界红石模拟器(MinecraftRedstoneSimulator) 铜牌收录

项目介绍

这个项目是游戏《我的世界》中的红石模拟器。

程序由两个窗口组成,一个是用来输入的 cmd 窗口,另一个是用来显示地图的绘图窗口。

执行效果:

这是一个 3 x 6 点阵灯,显示着字母 A。

尽管这个模拟器是平面的,但他仍然可以实现许多在 Minecraft 中可以实现的东西,此处不再举例,release 中有 map 文件夹,里面有预设的地图,可以参考。

更多内容请在程序中输入 help 指令查看帮助。

项目下载

下载链接:https://github.com/zouhuidong/MinecraftRedstoneSimulate/

Pixel Puzzles 银牌收录

Pixel Puzzles 是一种逻辑游戏,以猜谜的方式绘画位图。在一个网格中,每一行和列都有一组数,玩家需根据它们来填满或留空格子,最后就可以由此得出一幅图画。例如,“4 8 3”的意思就是指该行或列上有三条独立的线,分别占了 4、8、3 格,而每条线最少要由一个空格分开。传统上,玩家是以黑色填满格子,和以“×”号标记一定不需要填充的格子。就此来看,这和踩地雷十分相似。但跟踩地雷不同的是,即使填错了格子,也不会即时出局。Pixel Puzzles 是一个 NP 完全的问题。

游戏素材网站推荐 银牌收录

写游戏的同学辛苦了。

这里推荐几个免费的游戏素材网站。欢迎推荐更多的素材网站,直接留言给我,我加到这个列表里面。

1. The Spriters Resource

地址:https://www.spriters-resource.com,https://www.sounds-resource.com

介绍:非常丰富齐全的游戏素材网站,并且按照游戏主机分类,包括 NES、PS、GBA 等各大游戏平台的游戏,素材基本都是抠好图的 PNG 格式,非常好用。想做高仿游戏的同学不要错过。

还有 3D 模型、贴图、音效等素材。就是国外网站,访问速度有点慢。

2. Open Game Art

地址:https://opengameart.org

介绍:很全很好用的游戏资源网站,就是国外网站的访问速度有点慢。

3. 爱给网

地址:http://www.aigei.com

介绍:国内的游戏素材网站,也很好用齐全。不过有个不足:不登录不

...

开学新装备 - 学生党是否该入手 MacBook? 铜牌收录

学生党是否该入手 macbook 这个问题,相信许多人在许多社区都有看到过类似讨论。只不过,许多讨论都掺杂了信仰、智商税、不懂、不熟悉未来需求等各种因素,导致内容空洞价值不大。这篇文章,抛开了所有非理性因素,详细的告诉你该如何选择。

便携性

有人说,喜欢 macbook 就是喜欢那种轻薄的感觉。

现在来看看真实数据:

屏幕大小 外观尺寸 重量
苹果 MacBook Pro 2020 13 寸 30.41 x 21.24 x 1.56 cm 1.4 kg
苹果 MacBook Air 2020 13 寸 30.41 x 21.24 x 1.61 cm 1.29 kg
...

异世界之光 铜牌收录

前言

这是一个策略养成小游戏,虽然几乎谈不上策略。本人蒟蒻一只,代码问题以后会慢慢修改

背景介绍

“我”在一片丛林中迷迷糊糊地醒来,看了看周围杂草丛生的环境,瞪大了眼睛:“我不是在床上睡觉吗!!这什么鬼地方!!”。“我”急忙从地上站了起来,活动活动了全身酸软的肌肉,开始疯狂的破坏。在过了一个多小时的冷静后,“我”终于得出结论——我穿越了。。。

在一个多小时的破坏后,我整理了我现在拥有的物品——睡衣......然后没了,就只有睡衣。但是正当我绝望之时,我看见了一个破茅棚,旁边有一个小湖泊、一颗果树和一本书......一本写着召唤之书四个大字的破书... ... 

我带着满心的疑惑,打开了这本烂让人无法直视的的“召唤之书”。这本破书的第一页正上方赫然写着三个大字——哥布林......

(背景故事,文笔极差,随便看看)

游戏简介

最开始想做这个游戏是因为在疫情期

...

3D图形学知识汇编 金牌收录

最近我在学习计算机图形学的时候大量的上网翻书查阅资料,但是从网上和部分书籍里面看到的知识有些零散,所以我作此文章,将这些知识点串联起来。我的演示代码只是提供一个参考,希望读者通过阅读本文自己实现相应功能。本书主要是介绍 3D 渲染的流程和原理,所以有几乎没有对代码进行优化。如果要实现可用的高性能的渲染器,代码优化是必不可少的。   之前我写了一些图形学的教程,但是经过验证,发现里面有一部分数学推导是错误的(深度测试的插值算法,在齐次空间中裁剪的解释和证明),甚至深度插值的错误会导致错误的渲染结果(并且这个错误还不太明显,所以我一直没发现自己的错误),为此我重新修订了绝大部分的内容,这次经过我一个人(还是有点势单力薄)的努力推导,修复了上述的错误,整个教程的结构也进行的大改。但是我知识有限,可能还有很多错误存在其中,如果有读者能找到错误,还望不吝赐教。

Tony's Snake 3 银牌收录

介绍

一款基于贪吃蛇的小游戏,加入了多种有特殊效果的食物,可以控制蛇向八个方向移动。

这是本系列游戏的第三版,使用了 EasyX 的图形库,并增加了鼠标操作。

此程序是对绘图和鼠标操作的进一步练习,是对多态与类继承的初步学习。

编译环境

  • VC++6.0
  • EasyX 2018 春分版

文件

  • startup.h:一些全局变量
  • startup.cpp:游戏主程序
  • game.h:常量定义,与游戏信息类
  • info.cpp:游戏信息处理,读取外部数据,用于设置
  • element.h:游戏元素基类定义,蛇类,食物类均继承此类
  • element.cpp:基类的实现
  • snake.cpp:蛇类的实现
  • food.cpp:食物类的实现
  • interface.h:界面类定义
  • interfa
...

创建一个不受系统缩放设置(DPI)影响的绘图窗口 铜牌收录

现在的屏幕分辨率都比较高,为了使屏幕字体不至于太小,通常在 Win10 的显示设置里面设为放大 125% 或 150% 或更大,这样就会导致像素实际上被放大了。

如果你的程序不希望受系统缩放设置影响,你需要使用一个新的 API 函数:SetProcessDpiAwareness

注意这个 API 函数的使用条件:

  • Win8.1 及以上版本
  • 头文件 ShellScalingApi.h
  • 库文件 Shcore.lib

以下是一个完整的范例程序,该范例创建一个不受系统缩放设置影响的绘图窗口,并画一个圆:

// 编译环境:Win10 + VS2019 + EasyX_20200727
//

// 设定操作系统版本为 Win10(需要放到 #include <graphics.h> 前面)
#define WINVER 0x0A00
#define _WIN32_WINNT 0x0A00

...

不用创建项目,直接在 VS 里快速测试 C/C++ 代码 铜牌收录

概述

Visual Studio 强大、方便,但是每次写代码都要先创建新项目,这对于一些简单的代码测试来说有点不方便。

本文介绍一种使用 VS 快速测试代码的方法。

该方法适用任何版本的 VS。“不用创建项目”,是指不用“手工”创建项目,而是通过批处理命令,自动完成相关功能,实现双击图标后就进入代码编写环境。

准备工作

先按照如下步骤进行准备(请根据实际情况调整路径):

1. 建立文件夹 D:\TestCpp\,里面存放用来快速测试代码的项目。

2. 打开 Visual Studio,创建一个 Win32 Console Application 项目作为模版,项目路径 D:\TestCpp\Template\TestCon,其它设置根据自己的习惯来。然后添加代码文件 main.cpp:

#include <stdio.h>

int main()
{
	printf("Hello W
...