基于JAVA迷宫游戏

技术:Java等
摘要:

在现实生活之中,会遭遇许多许多关于迷宫这样繁杂难解的问题。假如人工去办理这些问题,会很麻烦,花费大量时间,乃至没法解决。迷宫是由许多个格子构成的,它要求我们设计的时候有且只有一条通路。我想到了以前我们学过的数据结构,其中有这样一个知识点,那就是树。树的根节点到每个子节点都只有一条路径。假如迷宫的入口为树的根节点,那么迷宫的出口就是树的子节点了,所以说根节点到树节点必须是唯一的一条路径。假如我们能够创造出一棵树来,这棵树必须把每一个格子都全部覆盖到,这样就可以初步完成一个迷宫了。还有一点就是必须要把树的父节点还有子节点放置在相邻的位置。在迷宫当中,树的父节点还有子节点他们共有的位置可以不画出来。但是其他的边都必须画出来,这样就能画出一个完整的迷宫了。
首先,我们要随机的选择在这颗树当中其中的一个格子当成根节点。从它的开头位置开始,在这颗树中走出一条路径,一直重复直到没有路径为止,这是我们就要退回到上一条路径,然后我们接着寻找路径,一直重复直到没有路径为止,我们一直重复以上的步骤,直到最后没有一条路可以走。在程序里就是下列过程,首先我们先在树中随机的抽取一个格子当做根节点,将它送进栈当中。然后查看栈是否为空,如果不是就运行这个循环,否则停止。拿出当中的一个格子,把他的标识设置成为一,然后把它全部的不在树中的相邻的格子依次放到栈中,而且还要让这些相邻格子指向该格子。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值