说明
老鼠走迷宫是递回求解的基本题型,我们在二维阵列中使用2表示迷宫墙壁,使用1来表示老鼠的行走路径,试以程式求出由入口至出口的路径。
解法
老鼠的走法有上、左、下、右四个方向,在每前进一格之后就选一个方向前进,无法前进时退回选择下一个可前进方向,如此在阵列中依序测试四个方向,直到走到出口为止,这是递回的基本题,请直接看代码应就可以理解。
class Point
attr_accessor :x,:y
def initialize(x,y)
@x=x
@y=y
end
end
class Maze
def initialize(maze,end_1)
@maze=maze
@end=end_1
end
def isArrived
@maze[@end.x][@end.y]==1
end
def isEmpty(p)
@maze[p.x][p.y]==0
end
def step(p)
@maze[p.x][p.y]=1
end
def empty(p)
@maze[p.x][p.y]=0
end
def print_p
unless @maze.length
exit
end
for i in 0..@maze..length
for j in 0..@maze[0]..length
if @maze[i][j]==2
print "█"
elsif @maze[i][j]==1
print "◇"
else
print " "
end
end
print "\n"
end
end
end
class Mouse
# def initialize(maze,p)
# @maze=maze
# @p=p
# end
def self.go(maze,p)
maze.step(p)
self.test(maze,Point.new(p.x,p.y+1))
self.test(maze,Point.new(p.x+1,p.y))
self.test(maze,Point.new(p.x,p.y-1))
self.test(maze,Point.new(p.x-1,p.y))
if !maze.isArrived
maze.empty(p)
end
end
def self.test(maze,p)
if !maze.isArrived and maze.isEmpty(p)
self.go(maze,p)
end
end
end
@maze= Maze.new(Array[
Array[2, 2, 2, 2, 2, 2, 2],
Array[2, 0, 0, 0, 0, 0, 2],
Array[2, 0, 2, 0, 2, 0, 2],
Array[2, 0, 0, 2, 0, 2, 2],
Array[2, 2, 0, 2, 0, 2, 2],
Array[2, 0, 0, 0, 0, 0, 2],
Array[2, 2, 2, 2, 2, 2, 2]
], Point.new(5, 5))
Mouse.go(@maze,Point.new(1,1))
if(!@maze.isArrived)
println("沒找到出口")
end
@maze.print_p
分享到:
相关推荐
【标题】"老鼠走迷宫C++"是一个编程项目,主要目标是使用C++语言来模拟老鼠在迷宫中寻找出路的过程,并可视化显示老鼠走过的路径。这个项目可以帮助学习者深入理解C++编程语言,同时涉及到算法设计和数据结构的应用...
用c++写出来的老鼠走迷宫,添加bmp图片模拟老鼠走迷宫,主要是针对数据结构课程设计专用,里面的所有源码完美运行,保证课设通过,私藏很久的文档,太珍贵了所以不敢删除,分享给学弟学妹们用,如果觉得好就给个赞呗
该压缩包包含一个基于C#实现的老鼠走迷宫程序,具有图形用户界面,并且支持加载自定义地图。这个项目可以被看作是C#编程、算法和数据结构的实践应用,尤其对于初学者来说,这是一个很好的学习资源。 首先,我们要...
在程序设计中,我们可以采用深度优先搜索(DFS)或广度优先搜索(BFS)算法来解决老鼠走迷宫的问题。DFS会尽可能深地探索迷宫的分支,直到找到出口或者回溯到死胡同;BFS则从起点开始,逐层扩展,确保找到的路径是最短的...
《3D小老鼠走迷宫》是一款基于Direct3D(简称D3D)技术开发的三维游戏,适用于课程设计教学目的。在这个游戏中,玩家将控制一个3D渲染的小老鼠在精心设计的迷宫中寻找出路。游戏的核心在于利用3D图形技术为玩家提供...
《小老鼠走迷宫:C语言实现的游戏程序详解》 在计算机编程的世界里,游戏程序设计始终是一个引人入胜的领域,它结合了逻辑思维、算法设计与趣味性。今天我们将深入探讨一款名为“小老鼠走迷宫”的游戏程序,它完全...
老鼠走迷宫,用数组跌打计算。 老鼠走迷宫,用数组跌打计算。
《老鼠走迷宫游戏》是一款基于迷宫路径搜索算法的游戏,玩家可以操控老鼠在随机生成的迷宫中寻找出路,同时还要避开猫的追逐。在这个游戏中,深度优先搜索(DFS)算法被用来解决老鼠如何有效地在迷宫中移动。下面...
标题中的“老鼠走迷宫(C++)”指的是一个编程挑战,它要求使用C++语言实现一个算法,模拟老鼠在迷宫中寻找出路的过程。这个挑战通常涉及到深度优先搜索(DFS)、广度优先搜索(BFS)或者A*寻路算法等路径查找策略。 在...
简单的老鼠走迷宫问题的求解!望提供一点分享 !
数据结构课程设计中,"老鼠走迷宫"是一个经典的实践项目,它涉及到计算机科学中的算法设计和数据结构应用。在这个项目中,我们通常使用二维数组来表示迷宫,堆栈作为辅助数据结构来实现老鼠的路径寻找。接下来,我们...
vc6编译器编译,C语言写的代码,老鼠走迷宫,用广度优先的寻找最短的路径算法,遍历全部路径使用的是深度算法。完整代码可直接下载调试运行。
在本文中,我们将深入探讨如何使用Qt框架和C++编程语言来实现一个老鼠走迷宫的游戏,这通常是一项数据结构课程设计项目。我们将重点关注迷宫生成算法和两种寻路算法:深度优先搜索(DFS)与广度优先搜索(BFS)。让...
在本文中,我们将深入探讨如何设计一个基于ARM7架构的老鼠走迷宫游戏。ARM7是一种广泛应用的微处理器内核,常用于嵌入式系统,因其低功耗、高性能而备受青睐。在这个游戏设计中,我们将关注以下几个关键知识点: 1....
在编程领域,老鼠走迷宫问题是一个经典的图论与数据结构问题,通常用来演示和学习如何使用栈(Stack)这一数据结构来解决实际问题。在这个问题中,我们假设有一只老鼠在一个迷宫中,需要找到从起点到终点的最短路径...
该课程设计项目是基于C++11编程语言实现的一个“老鼠走迷宫”问题,它不依赖于标准模板库(STL)。这个程序的主要目的是通过广度优先搜索(BFS)算法来解决老鼠如何从起点到达终点的问题。下面将详细阐述相关知识点...
这是一个用栈的操作实现的老鼠走迷宫的游戏,充分实现了栈的出入操作。
数据结构经典算法他全 如 河内之塔 三色旗 老鼠走迷宫 八皇后等等