- 博客(21)
- 收藏
- 关注
原创 unity3D实现人机坦克对战
在学习了一个学期的unity3D游戏设计课程后,已初步掌握了unity3D游戏设计的设计流程、具体游戏实现以及相关的游戏建模。在学习的过程中,我们已经掌握了MVC模型以及带有Action的模型,它们都是进行游戏设计与实现过程中常见的游戏设计模型。其中,利用该模型,我也完成了相应的游戏实例,比如魔鬼与牧师游戏的MVC版本以及动作分离版本,还有打飞碟和射击游戏的实现。在这一个过程中,加深了我对游戏模型的认识。
2024-01-10 21:55:14
1316
原创 快速入门去除文档图像阴影算法——BEDSR-Net
如何快速地配置好可以运行这一个算法的环境?如果需要对这一个算法的神经网络进行训练的话,可以参考上一部分——算法的神经网络训练,如果我们只是想直接使用这一个算法来进行带有阴影的文档图像阴影去除的话,我们可以直接使用下载的算法源码中的demo.ipynb文件,这是一个jupyter NoteBook的代码文件,可以使用Anaconda这一个集成环境来进行打开使用。如果我们还没有下载这一个Anaconda怎么办?不用慌,可以直接到百度中搜索Anaconda的安装,或者直接点击这一篇博客Anaconda的安装。
2023-12-23 20:27:43
3267
8
原创 实验十二:神经网络
我们对比了其它同学所画出来的折线图,发现我们的图像都是大同小异,而且变化的规律都是差不多的,所以我们可以知道我们的实验是成功的,我们所画出来的折线图是正确无误的,我们所编写的代码也是没有什么问题的。然后在这一个神经网络里面,我们定义了一个初始化的函数,传入的参数为输入层的维度、隐藏层的维度、输出层的维度,然后在该函数内部,我们利用线性层建立了两个全连接层,分别连接了输入层和隐藏层、隐藏层和输出层之间,最后使用了激活函数。在最后,我们将我们每一轮迭代的结果计算得到的训练损失和测试损失进行打印,结果如上所示。
2023-12-08 17:30:49
1154
原创 实验十一:支持向量机
本实验是在下的上进行的,使用的代码语言为。在开始实验前,我们首先需要导入所需要的库与包或者模块。本实验是一个支持向量机的实验,需要处理大量的实验数据,需要处理多维数组对象,以及可能还需要画图进行可视化处理,还有一些数学公式的运用,所以我们需要导入的包为以及。同时我们可能还需要使用函数来随机选取标签,所以我们还需要导入。而且在本次实验中,我们需要处理求解凸优化问题,例如支持向量机中的二次规划问题,以及线性规划问题,而这一些问题的求解都集成在了库中,所以我们还需要导入库。
2023-12-01 14:36:44
1261
1
原创 unity实现第一人称的打靶(射箭)游戏
一样的,我们还可以选择种草,我们选择不一样的小草,然后点击Terrain即可实现种草的功能。我们首先需要构建天空盒,我们可以直接从资源商店中导入相应的资源,我们导入的是资源是8K Skybox Pack Free,在这一个资源中,我们可以看到有很多个天空盒供我们自己选择,我们随便选择两种来实现天空盒的切换即可。最外面的绿色区域为Cube,白色区域为Cylinder,而最里面的靶心(红色)区域也是为Cylinder,通过修改其半径来显示不同的Cylinder,同时还需要为靶子不同的部分构建不同的碰撞检测体。
2023-12-01 09:31:51
1799
1
原创 实验十:EM算法
本实验是在下的上进行的,使用的代码语言为。在开始实验前,我们首先需要导入所需要的库与包或者模块。本实验是一个的实验,需要处理大量的实验数据,需要处理多维数组对象,以及可能还需要画图进行可视化处理,还有一些数学公式的运用,所以我们需要导入的包为以及。同时我们可能还需要使用函数来随机选取标签,所以我们还需要导入。如图所示,我们首先使用将数据集进行导入,导入的数据格式为,由于在后面的实验中使用该格式的数据不太方便,所有在这里我们需要使用函数将的数据转变为列表形式的数据。最后我们再将数据进行打印出来。
2023-11-23 00:06:34
207
原创 实验九:贝叶斯分类
我们首先需要将我们刚开始初始化的后验概率更新为先验概率prior_probability[‘p’],然后依次遍历所有的特征,获取得到该特征下输入的样本的对应的特征下的特征值的条件概率,然后将这个条件概率乘上前面的后验概率,并且更新该后验概率,如此累乘所有的特征下的该输入样本的特征值下的条件概率即可。然后使用sum函数来计算该样本中的总样本数,将其存储在total_sample中,随后我们将前面计算得到的每一个样本标签所对应的样本数量字典除于该样本的总样本数,就可以得到了每一个标签所对应的先验概率。
2023-11-14 20:48:10
327
1
原创 unity实现简易3D游戏——打飞碟
飞碟游戏是一款经典的射击类游戏,玩家需要通过射击飞碟来获取分数,游戏的目标是尽可能地获得高分。以下是飞碟游戏的一般规则和玩法:1. 游戏目标:玩家通过射击飞碟来获得分数,目标是尽可能地获得高分。2. 飞碟类型:游戏中通常会有多种不同类型的飞碟,每种飞碟的分数和速度可能不同,玩家需要根据情况选择目标并进行射击。在本游戏中,一共有三种飞碟的类型,分别对应着不同的颜色和不同的分数。
2023-11-12 19:00:14
1613
1
原创 实验八:降维
本实验是在下的上进行的,使用的代码语言为。在开始实验前,我们首先需要导入所需要的库与包或者模块。本实验是一个将数据集进行降维的实验,需要处理大量的实验数据,需要处理多维数组对象,以及需要画图进行可视化处理,还有一些数学公式的运用,所以我们需要导入的包为以及。同时我们还需要使用函数来随机选取样本,所以我们还需要导入。最后我们还需要导入模块将一些可能出现的警告信息忽略。如图所示,我们首先需要将训练集“train_data.csv”进行导入,使用了pandas库的read_csv函数。
2023-11-06 18:58:13
264
原创 实验七:聚类
如图所示,我们需要实现查找出该样本中的领域对象中的所有样本对象的函数。如图所示,我们需要查找出该样本数据集的所有核心对象,我们首先初始化一个列表用于存放所有的核心对象,然后可以开始遍历该样本数据集中的每一个样本,首先利用前面的函数获取当前样本下的领域内的所有样本索引下标,然后进行判断,如果该领域内的样本数量多于一定的阈值,那么当前样本就可以被标记为核心对象。如图所示,我们在计算曼哈顿距离的时候,根据公式,我们首先需要确保输入的两个样本的维度是相同的,然后获取这两个样本的维度,同时还需要初始化距离变量。
2023-11-02 21:43:47
281
1
原创 unity3D游戏——魔鬼与牧师(Devil and Priest)动作分离版本的实现
魔鬼与牧师(Devil and Priest)是一个经典的智力解谜游戏,玩家需要帮助三位魔鬼和三位牧师,将所有的牧师带过河,同时还要确保牧师不会被魔鬼吃掉。下面是游戏的规则和背景故事:规则:1. 在河的一边有三个魔鬼、三个牧师以及一条船。2. 船最多可以承载两个角色(牧师或魔鬼)且必须承载一个角色。3. 当河的一侧的魔鬼数量大于牧师数量时,魔鬼会吃掉牧师。4. 玩家需要将所有的牧师都安全地运送到另一侧的河岸,而且保证没有牧师被魔鬼吃掉。
2023-10-26 16:10:37
112
原创 实验六:随机森林
在训练过程中,Boosting会根据样本的权重调整样本的分布,将更多的关注放在先前预测错误的样本上。如图所示,我们在前面实验决策树的基础上,实现了随机森林,我们采用了相对多数投票法来进行计票,将每一个样本的标签预测出来,然后我们将预测的标签值与原来样本的标签值进行比较,然后计算得出预测的准确率为0.8366336633663366。本实验是一个使用决策树生成随机森林的实验,需要处理大量的实验数据,需要处理多维数组对象,以及可能需要画图进行可视化处理,还有一些数学公式的运用,所以我们需要导入的包为。
2023-10-23 21:58:46
332
原创 unity3D游戏——魔鬼与牧师(Devil and Priest)的MVC实现
魔鬼与牧师(Devil and Priest)是一个经典的智力解谜游戏,玩家需要帮助三位魔鬼和三位牧师,将所有的牧师带过河,同时还要确保牧师不会被魔鬼吃掉。下面是游戏的规则和背景故事:规则:1. 在河的一边有三个魔鬼、三个牧师以及一条船。2. 船最多可以承载两个角色(牧师或魔鬼)且必须承载一个角色。3. 当河的一侧的魔鬼数量大于牧师数量时,魔鬼会吃掉牧师。4. 玩家需要将所有的牧师都安全地运送到另一侧的河岸,而且保证没有牧师被魔鬼吃掉。
2023-10-20 13:10:14
385
1
原创 实验五:决策树
从实验结果中我们可以知道,我们的预测准确率为0.8366336633663366,可以得知我们构建的决策树在预测测试集的准确率上还是比较高的,所以我们的决策树构建的是比较正确的,那么可以得知我们前面编写的代码应该也是比较正确的。如图所示,我们可以看到我们构建的决策树的部分结构如上,首先最上面的是一个根节点,然后就到了第一个子节点,然后子节点下面还有很多的子节点,先遍历完了第一个子节点后再去遍历下一个子节点,所以我们可以知道这一个展示决策树的具体方式是深度优先的遍历顺序的。基尼系数越小,节点的纯度越高。
2023-10-16 21:12:48
766
1
原创 实验四:模型评估
不同的数据划分方式在不同的应用场景下均有重要的意义,如果我们硬要划分性能“最好”以及性能“最差”的话,由于交叉验证法比较稳定,而且评估的结果也比较高,同时还是进行k次评估再求其平均解的,所以我觉得交叉验证法的性能是最好的。而F1度量是精确度和召回率的调和平均值,可以衡量模型的整体性能。在上面的对比分析中,我们已经得知交叉验证法是性能最好的划分方式,其次是留出法,最后是自助法,当然,可能你们还会有不同的划分方式,但是在上面的基础上,由于我们只需要在留出法与自助法中做出选择,所以我们在这里选择的是留出法。
2023-10-08 11:48:45
207
1
原创 实验三:逻辑回归
如图所示,我们首先通过上面算法介绍的损失函数来计算训练集的损失函数的值,并且可以得知计算得到的训练集的损失函数的值为0.03990530073739535,可以得知,我们前面逻辑回归求得的参数w0、w1、w2是比较拟合的,逻辑回归方程也是比较符合预期的。我们首先使用pandas读取训练集的数据以及测试集的数据,然后检查数据中是否有数值为0等不合理的数据以及缺失的值,如果有则需要先将数据中不合理的值替换为缺失值,然后再将这些空值替换为相对应分类的平均值。在开始实验前,我们首先需要导入所需要的库与包或者模块。
2023-10-08 11:31:36
511
1
原创 实验二:线性回归
④梯度下降法的收敛速度取决于学习率的选择和损失函数的形状。观察预测结果的均方误差,我们可以得知使用梯度下降法求得的MSE还是在误差允许范围内的,所以我们使用梯度下降法所得到的三元线性回归方程的拟合度还是比较高的。观察预测结果的均方误差,我们可以得知使用矩阵求解法求得的MSE还是在误差允许范围内的,所以我们使用矩阵求解法所得到的三元线性回归方程的拟合度还是比较高的。3. 梯度下降法适用于各种规模的数据集和复杂的模型,只需要在每次迭代中计算样本的梯度,占用的内存较少,迭代过程可以减少异常值对参数更新的影响。
2023-10-08 11:15:11
3526
1
原创 记忆翻牌游戏——使用unity完成的2D游戏
在这一篇博客中,我将介绍如何使用unity以及Entity-Component-System (ECS)和Model-View-Controller (MVC)概念来制作一个简单的2D游戏——记忆翻牌游戏。在这一个过程中,我们将会了解游戏循环的基本原理,掌握常见游戏事件的使用及其执行顺序,学会使用unity的简单操作与编程,掌握游戏世界的基本概念。同时还对ECS以及MVC概念有一定的深入了解。好啦,在前面各种基础知识的了解下,我们可以开始制作我们的2D小游戏啦。
2023-09-28 23:14:45
1065
原创 微信小程序制作工具gamemaker(积木式游戏)实现的物理小游戏——拯救小丫
本游戏是使用微信小程序制作工具微信小游戏官网gamemaker来完成的。游戏制作所见即所得,快速上手、无需代码丰富的官方组件,排行榜、性能调优一键完成个性化素材、自定义组件,高级画板工具该游戏的制作是基于微信小程序制作工具中的物理行为的基础之上的,即完全模拟现实生活中重力以及摩擦力等因素来制作完成的。本游戏一共有三个关卡,当然,理论上关卡数量是可以无限增加的,但由于时间有限,在本游戏中只设计了三个关卡,每一个关卡均需要实现相应提示的内容方可过关。
2023-09-13 17:44:34
1673
2
原创 微信小程序制作工具gamemaker(积木式游戏)入门案例——飞机大战
本游戏是基于微信小程序制作工具微信小游戏官网的入门教学视频完成的。游戏制作所见即所得,快速上手、无需代码丰富的官方组件,排行榜、性能调优一键完成个性化素材、自定义组件,高级画板工具该游戏的制作是基于微信小程序制作工具中的经典飞小游戏的基础之上的,同时添加了战机与敌机的碰撞,提高了敌机发射子弹的速度,增加了小游戏的难度。首先让我们来看一下该游戏(飞机大战)的演示视频飞机大战演示视频接下来让我们开始我们的游戏创作之旅吧!以上就是我们使用微信小程序基于积木式游戏制作飞机大战的基本过程。
2023-09-12 20:09:14
3738
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人