游戏人生
文章平均质量分 51
jjwwwww
逐步成长中。。。
展开
-
pyhton生成迷宫
pyhton生成迷宫效果图实现原理代码效果图实现原理原理是参照我之前的文章用的深度优先遍历代码import randomimport numpy as npimport matplotlib.pyplot as pltclass MazeDefine(object): WALL = 0 ROAD = 1 DIR = [ (1, 0), (0, 1), (-1, 0), (0, -1), ]class Maze(object): def __init原创 2020-12-14 17:31:24 · 420 阅读 · 0 评论 -
迷宫生成算法
迷宫生成算法随便聊点设计思路代码实现随便聊点关于迷宫算法其实我之前写过两篇文章,不过这两天突然需要用到了,看了两分钟自己的博客居然一时没怎么看懂。不过毕竟我之前研究过,花了点时间还是给重新写了出来,相比之下反而觉得以前写的代码有点累赘了,鉴于之前那篇文章点击率也蛮高的,删掉重写又怪可惜的,想想就顺便再水一篇吧。设计思路先来张效果图:我们可以把迷宫建立的过程想象成挖地道。首先,假设我们当前所在位置是(x,y),此时我们可以挖的方向分别是上下左右四个方向: 上(x-1,原创 2020-06-07 13:22:44 · 5504 阅读 · 18 评论 -
三维坐标旋转实现
三维坐标旋转实现推导二维坐标旋转问题代码实现推导三维坐标的旋转其实挺容易理解的。首先需要有个旋转中心O(x,y,z)O(x,y,z)O(x,y,z),其次是我们的旋转点P(x1,y1,z1)P(x_1,y_1,z_1)P(x1,y1,z1),那么可知旋转点PPP的相对坐标为P′(x1−x,y1−y,z1−z)P'(x_1-x,y_1-y,z_1-z)P′(x1−x,y1−y,z...原创 2019-11-08 23:37:16 · 5294 阅读 · 2 评论 -
C语言实现贪吃蛇
贪吃蛇是我们耳熟能详的游戏,游戏思路很简单,我们操纵一条蛇在屏幕上游走寻找食物,当吃到食物时蛇就会变长,当蛇头碰到墙壁或者自己的身体时,此时蛇就会死亡,而游戏也就结束了。那么我们设计游戏的时候,需要注意三点:(1)及时刷新蛇的位置(2)蛇吃到食物时,蛇的身体会变长,同时及时刷新新的食物(3)蛇在遇到墙壁和自己的身体时会死亡直接看代码:#include<stdio.h...原创 2018-09-24 10:41:15 · 1309 阅读 · 2 评论 -
随机迷宫生成算法——深度优先算法
迷宫是我们小时候经常玩的游戏,如何用代码来快速生成上面这种迷宫呢?迷宫算法有三大算法:深度优先算法、prim算法和递归分割算法。这里用的是深度优先算法,在此说一下算法思路,希望对各位有所帮助。首先我的假设是,迷宫只有一条正确的道路。这个时候请把自己想象成一只地鼠,要在这个区域不停的挖,直到任何一块区域再挖就会挖穿了为止。我们挖的道路就像树结构,树上有很多的分支,分支也有子...原创 2018-09-27 21:20:27 · 29385 阅读 · 20 评论 -
随机迷宫生成算法——prime算法
本以为Prime迷宫生成算法和图论的Prime算法有什么关联,貌似并没有。Prime迷宫生成算法的原理:(1)初始地图所有位置均设为墙(2)任意插入一个墙体进墙队列(3)判断此时墙体是否可以设置为路(判断依据在于上下左右四个位置是否只有一个位置是路)(4)若设置为路,则将该位置周围(上下左右)的所有墙插入队列,接着执行(5);若无法设置为路,直接执行(5)(5)从墙队列...原创 2018-09-28 23:13:36 · 11210 阅读 · 4 评论 -
随机迷宫生成算法——递归分割算法
迷宫生成三大算法,Prime算法、深度优先算法、递归分割算法,其中递归分割算法最简单,效率也最高,不过生成的迷宫也最简单,看图:原理很简单,首先假设迷宫全是路,在里面画四面墙,把迷宫分割成四个新区域,如下:随机选择三面墙打通,这时原本隔开的四个区域又被打通了。以此类推,在四个新区域内继续设墙分割区域,然后把墙打通,直到不能继续分割才结束。 好嘞,看代码:#includ...原创 2018-09-29 18:41:30 · 8100 阅读 · 1 评论 -
简单五子棋算法——初级篇
五子棋博弈算法探究(1)前言前言最近对五子棋产生了一点兴趣,想来研究研究,我原本觉得简简单单的五子棋,其实还是有很多学问的。五子是中国古老的棋类之一,是老少咸宜的娱乐项目,...原创 2018-12-26 17:20:17 · 21153 阅读 · 0 评论