-
March 29th, 2008, 10:56 PM
#1
Pleas help out a beginner's maze program
Im trying to program a maze. It works but for some reason it stops in the middle of the thing. Its suppose to find the 2 but it dosent...
class maze{
public static void main(String args[]){
int mr = 0;
int mc = 0;
int m[][] = {{0,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
{0,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
{0,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
{0,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
{0,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
{0,1,1,2,0,0,0,0,1,1,1,1,1,1,1},
{0,1,1,1,1,1,1,0,1,1,1,1,1,1,1},
{0,0,0,0,0,1,1,0,1,1,1,1,1,1,1},
{1,0,1,1,0,1,1,0,1,1,1,1,0,1,1},
{1,1,1,1,0,1,1,0,1,1,1,1,0,1,1},
{1,1,1,1,0,1,1,0,1,1,1,1,0,1,1},
{1,1,1,1,0,0,0,0,0,0,0,0,0,1,1},
{1,1,1,1,1,1,1,0,1,1,1,1,1,1,1},
{1,1,1,1,1,1,1,0,1,1,1,1,1,1,1},
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}};
int ctr = 0;
while ( ctr < 100 ){
if (m[mr][mc] == 2 ){
System.out.print("Cheese found");
}
else if (m[mr+1][mc] ==0 ){
++mr;
}
else if (m[mr][mc+1] !=1 ){
++mc;
}
else if (m[mr-1][mc] != 1 ){
--mr;
}
else if (m[mr][mc-1] != 1 ){
--mc;
}
m[mr][mc]= 3;
++ctr;
for ( int r = 0; r < m.length; ++r){
for( int c = 0; c < m[0].length; ++c)
System.out.print( m[r][c] + " ");
System.out.println();
}
System.out.println();
}//end while loop
} //end main
}//end class
-
March 29th, 2008, 11:51 PM
#2
Re: Pleas help out a beginner's maze program
It's probably because you try to access an index out of bounds. You do stuff like: m[mr+1][mc] or m[mr-1][mc]. If mr is 0 or is mr+1 is outside the array, you will have problem. To solve that, you need to carefully verify those values before trying to access the array.
JeffB
-
March 30th, 2008, 11:16 AM
#3
Re: Pleas help out a beginner's maze program
thanks ill look into that.
just wanted to show my problem. When i run it it turns out like this
0 1 1 1 1 1 1 1 1 1 1 1 1 1 1
3 1 1 1 1 1 1 1 1 1 1 1 1 1 1
3 1 1 1 1 1 1 1 1 1 1 1 1 1 1
3 1 1 1 1 1 1 1 1 1 1 1 1 1 1
3 1 1 1 1 1 1 1 1 1 1 1 1 1 1
3 1 1 2 0 0 0 0 1 1 1 1 1 1 1
3 1 1 1 1 1 1 0 1 1 1 1 1 1 1
3 3 3 3 3 1 1 0 1 1 1 1 1 1 1
1 3 1 1 3 1 1 0 1 1 1 1 3 1 1
1 1 1 1 3 1 1 0 1 1 1 1 3 1 1
1 1 1 1 3 1 1 0 1 1 1 1 3 1 1
1 1 1 1 3 3 3 3 3 3 3 3 3 1 1
1 1 1 1 1 1 1 3 1 1 1 1 1 1 1
1 1 1 1 1 1 1 3 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
as you can see it stops without reaching 2.
but when i change up the maze a bit like this...
0 1 1 1 1 1 1 1 1 1 1 1 1 1 1
3 1 1 1 1 1 1 1 1 1 1 1 1 1 1
3 1 1 1 1 1 1 1 1 1 1 1 1 1 1
3 1 1 1 1 1 1 1 1 1 1 1 1 1 1
3 1 1 1 1 1 1 1 1 1 1 1 1 1 1
3 1 1 2 0 0 3 3 1 1 1 1 1 1 1
3 1 1 1 1 1 1 3 1 1 1 1 1 1 1
3 3 3 3 3 1 1 3 1 1 1 1 1 1 1
1 3 1 1 3 1 1 3 1 1 1 1 1 1 1
1 1 1 1 3 1 1 3 1 1 1 1 1 1 1
1 1 1 1 3 1 1 3 1 1 1 1 1 1 1
1 1 1 1 3 3 3 3 1 1 1 1 1 1 1
1 1 1 1 1 1 1 3 1 1 1 1 1 1 1
1 1 1 1 1 1 1 3 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
it works better but it still dosen't complete.
-
March 30th, 2008, 03:08 PM
#4
Re: Pleas help out a beginner's maze program
One of your problems is that your 'mouse' doesn't backtrack once it hits a dead end. That's why it ends the way it does in your first example.
edit: alright maybe it is somewhat. it would be less confusing if you could tell exactly where the mouse was in any given step.
Last edited by Phlox; March 30th, 2008 at 03:34 PM.
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|