# MAZE Problem

Show 80 post(s) from this thread on one page
Page 3 of 5 First 12345 Last
• 03-30-2008
peacealida
DWK~~Thx so much

Have reduced the code replaced by yours haha.. I am so stupid ~ ~

Anyway can you give me a little bit more hint how to place the 1's??
thanks thanks
• 03-30-2008
peacealida
still getting error and i am not sure is this correct as well

Code:

```int run; char filename[16]; FILE *filep; char *nodep; int row, col, next_row, next_col, heading, steps, pellets; enum {NORTH, EAST, SOUTH, WEST}; ////create map 32 X 32 with all zeros//// char matrix[MATRIX_SIZE][MATRIX_SIZE]; char matrix_data[MATRIX_SIZE][MATRIX_SIZE] = {{0}}; ////created the map with zeros//// ///////////////////////////now fill 1's into the field///////////////////////// ///////////////////////////////////////////////////////////////////////// ///////////test///////// int main()  {     int x;     int c;     srand(()&#37;1024);     for(x=0; x<100; x++) {         int n = 100 + rand() % 300;         printf("%d\n", 1);             for (c = 0; c < 300; c++) matrix_data[rand()%MATRIX_SIZE][rand()%MATRIX_SIZE] = 1;             } } ///////////////////////// char trace_matrix[MATRIX_SIZE][MATRIX_SIZE]; void output_program(struct prog *progp) {   char *codep = progp->code;   char token;   while (token = *codep++)     fputs(token_table[token].name, stdout);   putchar('\n'); } void print_matrix(void) {  int i, j; char symbs[] = " OX";   for (i=0; i < MATRIX_SIZE; i++)   {  for (j=0; j < MATRIX_SIZE; j++)           putchar(symbs[trace_matrix[i][j]]);       putchar('\n');   } }```
can any1 can tell m what's gone wrong????
• 04-01-2008
peacealida
Hi the code is working now.

Code:

``` ////create array map 32 X 32 (1024 steps) with all zeros and trace map//// int matrix[MATRIX_SIZE][MATRIX_SIZE]; int matrix_data[MATRIX_SIZE][MATRIX_SIZE] = {{0}}; int trace_matrix[MATRIX_SIZE][MATRIX_SIZE]; ///////////////////////////////////////////char to int////////////// void output_program(struct prog *progp) {   char *codep = progp->code;   int token;   while (token = *codep++)     fputs(token_table[token].name, stdout);   putchar('\n'); } int main() {   int i; time_t start;   seed = time(NULL);   time(&start);```

Now the program produce a random map. But how can i ensure food do not overlap??

In addition, is it able to create 1 random map and 2 maps to allow user to choose? and how can I implement it?
thanks
• 04-01-2008
tabstop
Quote:

Originally Posted by peacealida
Hi the code is working now.

\Now the program produce a random map. But how can i ensure food do not overlap??

Watch carefully; there may be a test afterwards:

Code:

```for (c = 0; c < 300; c++) {     int x = rand()%MATRIX_SIZE;     int y = rand()%MATRIX_SIZE; //our x- and y-coordinates     matrix_data[x][y]++; // add 1 to our randomly chosen spot     if (matrix_data[x][y] > 1) { // oops!  too much!         matrix_data[x][y] = 1; //reset food         c--; //take away from the count of food     } }```
• 04-01-2008
peacealida
I cant belive you ability so fast......
It runs perfet!!!!

You know the array I have creted... can you hint me why it kept error pleasE??
Code:

``` int matrix[MATRIX_SIZE][MATRIX_SIZE]; int matrix_data[4][MATRIX_SIZE][MATRIX_SIZE]; {        cout <<"Ender Maze wanted:";     cin >> x;     cout <<"Maze Choosen is: " << x << endl <<endl;     matrix_data[0][MATRIX_SIZE][MATRIX_SIZE] = {{0}};     matrix_data[1][MATRIX_SIZE][MATRIX_SIZE]= {{1}};   //  //--------------------------------------------------------------//   //  //--------------------------------------------------------------//     return matrix_data[0]; } int trace_matrix[MATRIX_SIZE][MATRIX_SIZE];```

in the main

Code:

```int main() {     int n;     for (n=0; n<4; n++);         //result += matrix_data[n];     printf("%d\n", matrix_data[n]);     //std::cout<< matrix_data <<std::enl;     //cout << result         return 0;```
I think I am completely wrong in the int main()
wt statement i need to read the array and put it back?

Thanks for you Great Help X 10000000000
• 04-01-2008
tabstop
You can only use an array initializer when you declare it, so this line:
Code:

`matrix_data[0][MATRIX_SIZE][MATRIX_SIZE] = {{0}};`
(and the one after it) are errors.

To initialize a matrix, you need to run a double for-loop. So, for instance, to initialize matrix_data[0], we would run a for-loop on row, and inside that a for-loop on col, and inside that we would set matrix_data[0][row][col].

Alternatively, you could do one big initializer as so:
Code:

```matrix_data[4][MATRIX_SIZE][MATRIX_SIZE] = { {{0}}, //this is matrix_data[0], the random one {{0,1,1,0,1,1,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0}, //this is first row of [1]  { ...stuff ...}, //the second row of [1]  { et cetera },  { and so on}} //end of [1] {{more numbers}, //first row of [2] . . .```
It will be big, but if you've got them already you can copy'n'paste.
• 04-01-2008
peacealida
These are what I have mdify:

Code:

```#include <iostream.h> #include <fstream.h> #include <iomanip.h> ////create array map 32 X 32 (1024 steps) with all zeros and trace map//// int matrix[MATRIX_SIZE][MATRIX_SIZE]; int matrix_data[2][MATRIX_SIZE][MATRIX_SIZE]; {     cout <<"Ender Maze wanted, 0,1,2,3:\n";     cout <<"    0- Random Maze\n";     cout <<"    1- Set Maze (1)\n";     cout <<"    2- Exit\n";     cin >> x;     cout <<"Maze Choosen is: " << x << endl <<endl;         matrix_data[0][MATRIX_SIZE][MATRIX_SIZE] = {{0}};     matrix_data[1][MATRIX_SIZE][MATRIX_SIZE] =   { {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},     {0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0},     {0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0},     {0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0},     {0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0},     {0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0},     {0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0},     {0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0},     {0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0},     {0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0},     {0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0},     {0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0},     {0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0},     {0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0},     {0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,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,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},     {0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},     {0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0},     {0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0},     {0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0},     {0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0},     {0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0},     {0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0},     {0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0},     {0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0},     {0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0},     {0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0},     {0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0},     {0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0},     {0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0},     {0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0},     {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1}   };     return matrix_data[0]; } int trace_matrix[MATRIX_SIZE][MATRIX_SIZE]; ///////////////////////////////////////////char to int////////////// void output_program(struct prog *progp) {   char *codep = progp->code;   int token;         while (token = *codep++)     fputs(token_table[token].name, stdout);   putchar('\n'); } void print_matrix(void) {  int i, j; char symbs[] = " OX";   for (i=0; i < MATRIX_SIZE; i++)   {  for (j=0; j < MATRIX_SIZE; j++)           putchar(symbs[trace_matrix[i][j]]);       putchar('\n');   } }```
Like you said it's gonna be huge if 3-4 maps existed. So ihave only include 1 random map and 1 pre-defined map.

But where do i use the double- for loop?? and what should i include in the main?

What i am currently in the main isn't very usefulllll

Code:

```int main() {     int n;     for (n=0; n<4; n++);         //result += matrix_data[n];     printf("&#37;d\n", matrix_data[n]);     std::cout<< matrix_data <<std::enl;     //cout << result         return 0;```

---------------------------[thanks for the Help]--------------------------------
• 04-01-2008
matsp
Code:

```    matrix_data[1][MATRIX_SIZE][MATRIX_SIZE] =   { {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},     {0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0},     {0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0},     {0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0},   ....   };```
Won't compile - it's not possible to initialiize the variable once it's been declared - it has to be on this line:
Code:

`int matrix_data[2][MATRIX_SIZE][MATRIX_SIZE];`
Edit: and of course you need to initialize both at the same time.
--
Mats
• 04-01-2008
tabstop
Quote:

Originally Posted by peacealida
Like you said it's gonna be huge if 3-4 maps existed. So ihave only include 1 random map and 1 pre-defined map.

But where do i use the double- for loop?? and what should i include in the main?

What i am currently in the main isn't very usefulllll
---------------------------[thanks for the Help]--------------------------------

So, wherever you set up the random matrix, that's where you set up the other pre-defined matrix as well.
• 04-01-2008
peacealida
Hi Mats I am sorry can you explain further what do i need to change??

you mean i have to change from:

matrix_data[1][MATRIX_SIZE][MATRIX_SIZE] =
{ {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,1},
{0,1,.....
[/code]

to

Code:

``` int matrix[MATRIX_SIZE][MATRIX_SIZE]; int matrix_data[2][MATRIX_SIZE][MATRIX_SIZE];     cout <<"Ender Maze wanted, 0,1,2,3:\n";     cout <<"    0- Random Maze\n";     cout <<"    1- Set Maze (1)\n";     cout <<"    2- Exit\n";     cin >> x;     cout <<"Maze Choosen is: " << x << endl <<endl;         matrix_data[0][MATRIX_SIZE][MATRIX_SIZE] = {{0}};     matrix_data[1][MATRIX_SIZE][MATRIX_SIZE] =   { {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},     {0,1,0,0,0,0```

or sth else???? Cheers

[code]
• 04-01-2008
peacealida
tapstop ic

So i should put the pre-define matrix inside the
int main()?
• 04-01-2008
matsp
I mean "something else".

You have variable declaration (int matrix_data[...][...][...];), and then you attempt to assign this variable using an initializer list somewhere else. That is not valid code.

Simple example:
Code:

```// Valid code: int arr[10] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; // Not valid code int arr[10]; arr = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };```
--
Mats
• 04-01-2008
peacealida
This is the problem; coz i am try to store differetn 32 X 32 matrix.
therefore in my array have 2 maps.

I can't not just put 1 number.
So how can i resolve this???

or like this?

Code:

``` int matrix_data[2][MATRIX_SIZE][MATRIX_SIZE]; = { {{0}}, {{1,1,1,1,1,0,0,0,0,0,0,},{1,1,1,0,0,0,0,1,1,0}};}```

---------------------------[thanks for the Help]--------------------------------
• 04-01-2008
tabstop
Quote:

Originally Posted by peacealida
Code:

``` int matrix_data[2][MATRIX_SIZE][MATRIX_SIZE];```

This is your declaration. The only only only only place you can do an initializer is here. Only here. Anywhere else, and you'll have to access the array elements one-by-one.
• 04-01-2008
tabstop
Quote:

Originally Posted by peacealida
Code:

``` int matrix_data[2][MATRIX_SIZE][MATRIX_SIZE]; = { {{0}}, {{1,1,1,1,1,0,0,0,0,0,0,},{1,1,1,0,0,0,0,1,1,0}};}```

This is the one you want. You have to initialize the whole thing in one shot with an initializer list like this.
Show 80 post(s) from this thread on one page
Page 3 of 5 First 12345 Last