java 迷宫问题

问题描述

已经用递归的方法写出迷宫了。。。现在要修改成不储存直接打印找到的最终路径就是类似77700000077700这样子的用temp来储存maze,然后调用traverse()publicclassMaze{privatefinalintTRIED=3;privatefinalintPATH=7;privateint[][]grid={{1,1,1,0,1,1,0,0,0,1,1,1,1},{1,0,1,1,1,0,1,1,1,1,0,0,1},{0,0,0,0,1,0,1,0,1,0,1,0,0},{1,1,1,0,1,1,1,0,1,0,1,1,1},{1,0,1,0,0,0,0,1,1,1,0,0,1},{1,0,1,1,1,1,1,1,0,1,1,1,1},{1,0,0,0,0,0,0,0,0,0,0,0,0},{1,1,1,1,1,1,1,1,1,1,1,1,1}};//-----------------------------------------------------------------//Attemptstorecursivelytraversethemaze.Insertsspecial//charactersindicatinglocationsthathavebeentriedandthat//eventuallybecomepartofthesolution.//-----------------------------------------------------------------publicbooleantraverse(introw,intcolumn){booleandone=false;if(valid(row,column)){grid[row][column]=TRIED;//thiscellhasbeentriedif(row==grid.length-1&&column==grid[0].length-1)done=true;//themazeissolvedelse{done=traverse(row+1,column);//downif(!done)done=traverse(row,column+1);//rightif(!done)done=traverse(row-1,column);//upif(!done)done=traverse(row,column-1);//left}if(done)//thislocationispartofthefinalpathgrid[row][column]=PATH;}returndone;}//-----------------------------------------------------------------//Determinesifaspecificlocationisvalid.//-----------------------------------------------------------------privatebooleanvalid(introw,intcolumn){booleanresult=false;//checkifcellisintheboundsofthematrixif(row>=0&&row<grid.length&&column>=0&&column<grid[row].length)//checkifcellisnotblockedandnotpreviouslytriedif(grid[row][column]==1)result=true;returnresult;}//-----------------------------------------------------------------//Returnsthemazeasastring.//-----------------------------------------------------------------publicStringtoString(){Stringresult="n";for(introw=0;row<grid.length;row++){for(intcolumn=0;column<grid[row].length;column++)result+=grid[row][column]+"";result+="n";}returnresult;}}

publicclassMazeSearch{//-----------------------------------------------------------------//Createsanewmaze,printsitsoriginalform,attemptsto//solveit,andprintsoutitsfinalform.//-----------------------------------------------------------------publicstaticvoidmain(String[]args){Mazelabyrinth=newMaze();System.out.println(labyrinth);if(labyrinth.traverse(0,0))System.out.println("Themazewassuccessfullytraversed!");elseSystem.out.println("Thereisnopossiblepath.");System.out.println(labyrinth);}}

解决方案

解决方案二:
楼主这是提问呢还是贴答案呢,没看明白

时间: 2024-10-25 02:45:24

java 迷宫问题的相关文章

迷宫的最短路径算法 代码(C++)

题目: 给定一个大小为N*M的迷宫. 迷宫由通道和墙壁组成, 每一步可以向邻接的上下左右四格的通道移动. 请求出从起点到终点所需的最小步数. 请注意, 本题假定从起点一定可以移动到终点. 使用宽度优先搜索算法(DFS), 依次遍历迷宫的四个方向, 当有可以走且未走过的方向时, 移动并且步数加一. 时间复杂度取决于迷宫的状态数, O(4*M*N)=O(M*N). 代码: /* * main.cpp * * Created on: 2014.7.17 *本栏目更多精彩内容:http://www.bi

java算法-关于Java的走迷宫问题

问题描述 关于Java的走迷宫问题 题目是这样的: 用户输入一个值,生成一个n*n的矩阵,然后每个符号之间用空格隔开,要求从A到B,如果当前位置的坐标是"+"那么下一个坐标则必须为"-",找出最短的路径的步数 我的代码是把所有的情况写出来,但是出错了,请各位大神看看哪里有问题 import java.util.ArrayList; import java.util.Scanner; public class Main { //矩阵的大小 static int n;

java实现单词搜索迷宫游戏_java

本文实例讲述了java实现单词搜索迷宫游戏.分享给大家供大家参考.具体分析如下: 我们在杂志上,经常能够看到找单词的小游戏,在一个二维表格中,存在各种字母,我们可以从八个方向找单词.这个用计算机处理十分方便,但是,算法的好坏很重要,因为要是用蛮力算法实现,那么耗费的时间是不可想象的. 这是数据结构与问题求解Java语言描述一书中给的实现思路 完整代码如下,注释写的很明白了 import java.io.BufferedReader; import java.io.FileReader; impo

Java中栈.回溯.迷宫问题求解

考虑使用一个二维数组表示迷宫.所有的通路用0表示,墙用1表示,出口用9表示,入口用6表 示,已经过点用3表示.输出走出迷宫的过程. 从这个问题的求解过程中可以简单总结出两个算法,一是探路过程,二是输出路线. 1.探路过程 探路过程算法可归纳为: [1]从入口位置开始,检查东西南北四个方向上的通路,如果发现出口则成功退出,否则将所 有通路坐标压入栈; [2]从栈中取出一个坐标,将其标记为当前位置(标记数字3),再次判断通路情况; [3]如此进行,直到发现出口则成功退出,若栈空而且未发现出口,则失败

求指出其中的错误 JAVA 编写的 简单迷宫问题

问题描述 packagetest2;importjava.util.*;publicclassmigong{/***@paramargs*/publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstubScannerin=newScanner(System.in);while(in.hasNext()){int[][]num1=newint[5][5];for(inti=0;i<5;i++){for(intj=0;j<5;j+

谁有Java的迷宫或连连看游戏的代码???

问题描述 给我一下吧,我急用...谢谢了 解决方案 解决方案二:我有,但是在书上,改天看用怎么个方式给你把解决方案三:这样的代码网上应该有很多呀,随便下一个就行了,我给你一个importjavax.swing.*;importjava.awt.*;importjava.awt.event.*;publicclasslianliankanimplementsActionListener{JFramemainFrame;//主面板ContainerthisContainer;JPanelcenter

迷宫问题的研究与实现

[问题描述] 以一个M×N的长方阵表示迷宫,0和1分别表示迷宫中的通路和障碍.设计一个程序,对任意设定的迷宫,求出一条从入口到出口的通路,或得出没有通路的结论. (1)根据二维数组,输出迷宫的图形. (2)探索迷宫的四个方向:RIGHT为向右,DOWN向下,LEFT向左,UP向上,输出从入口到出口的行走路径. [算法分析] 主要考查数据结构-栈.栈作为一种数据结构,是一种只能在一端进行插入和删除操作的特殊线性表.它按照先进后出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的

杭电 1272 poj 1308 小希的迷宫

这道题是我学了并查集过后做的第三个题,教我们的学姐说这是并查集的基础题,所以有必要牢牢掌握. 下面就我做这道题的经验,给大家一些建议吧!当然,我的建议不是最好的,还请各位大神指出我的错误来,我也好改正. 1.题目概览 这道题是杭电1272,POJ 1308如果写好了代码可以试一试. 小希的迷宫 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s

hdu 1272 小希的迷宫[kuangbin带你飞]专题五 并查集

点击打开链接 小希的迷宫 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 36540    Accepted Submission(s): 11175 Problem Description 上次Gardon的迷宫城堡小希玩了很久(见Problem B),现在她也想设计一个迷宫让Gardon来走.但是她设计迷宫的思路不一样,首先她认为所