home *** CD-ROM | disk | FTP | other *** search
/ Shareware Supreme Volume 6 #1 / swsii.zip / swsii / 215 / DDJ9302.ZIP / MAZE.ASC < prev    next >
Text File  |  1993-01-11  |  940b  |  38 lines

  1. _CELLULAR AUTOMATA FOR SOLVING MAZES_
  2. by Basem A. Nayfeh
  3.  
  4. [EXAMPLE ONE]
  5.  
  6. #define FALSE 0
  7. #define TRUE  1
  8. #define FREE  0
  9. #define WALL  1
  10.  
  11.   do {
  12.     steadystate = TRUE;
  13.     /* scan the entire CA */
  14.     for (x=1;x<Xsize-1;x++) {
  15.       for (y=1;y<Ysize-1;y++) {
  16.         if (cell[x][y] == FREE) {
  17.           /* addition can be used here to determine if */
  18.           /* a cell is  surrounded by 3 or more walls  */
  19.           if ((cell[x+1][y] + cell[x-1][y]
  20.  
  21.              + cell[x][y+1] + cell[x][y-1]) >= 3) {
  22.             cell[x][y] = WALL;
  23.             steadystate = FALSE;
  24.           }
  25.         }
  26.       }
  27.     }
  28.   /* keep scanning the CA until */
  29.   /* a steady state condition is reached       */
  30.   } while(!steadystate);
  31.  
  32.   /* the cell array now contains the correct solution(s) */
  33.   /* denoted by the remaining free cells                 */
  34.  
  35.   /* no solution if all cells are now wall cells         */
  36.  
  37.    
  38.