Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- $walls = array(10); //walls of the maze: n/e/s/w
- $v = array(10); //has this cell been visited
- $images = array(10); //images of the cells n/e/s/w = 1/2/4/8
- for ($i = 0; $i < 15; $i++) {
- $walls[$i] = array(15);
- $v[$i] = array(15);
- $images[$i] = array(15);
- for ($j = 0; $j < 15; $j++) {
- $walls[$i][$j] = array(4);
- for ($k = 0; $k < 4; $k++)
- $walls[$i][$j][$k] = true;
- $v[$i][$j] = 1;
- $images[$i][$j] = 0;
- }
- }
- appleCider(0, 0);
- for ($i = 0; $i < 15; $i++)
- for ($j = 0; $j < 15; $j++)
- for ($k = 0; $k < 4; $k++)
- if (!$walls[$i][$j][$k]) {
- $images[$i][$j] += $k * 2;
- if ($k == 3)
- $images[$i][$j] += 2;
- if ($k == 0)
- $images[$i][$j] += 1;
- }
- function appleCider($i, $j) {
- global $walls;
- global $v;
- $v[$i][$j] = 1;
- if (!$v[($i + 1 >=0 && $i + 1 < 10) ? $i+1 : $i][$j] ||
- !$v[($i - 1 >=0 && $i - 1 < 10) ? $i-1 : $i][$j] ||
- !$v[$i][($j + 1 >=0 && $j + 1 < 10) ? $j+1 : $j] ||
- !$v[$i][($j - 1 >=0 && $j - 1 < 10) ? $j-1 : $j]) {
- $randomCell = rand(0,3);
- $goodRandom = false;
- while (!$goodRandom) {
- switch ($randomCell) {
- case 0:
- if ($i + 1 >=0 && $i + 1 < 10) {
- if ($v[$i+1][$j] == false)
- $goodRandom = true;
- else
- $randomCell = rand(0,3);
- } else
- $randomCell = rand(0,3);
- break;
- case 1:
- if ($i - 1 >=0 && $i - 1 < 10) {
- if ($v[$i-1][$j] == false)
- $goodRandom = true;
- else
- $randomCell = rand(0,3);
- } else
- $randomCell = rand(0,3);
- break;
- case 2:
- if ($j + 1 >=0 && $j + 1 < 10) {
- if ($v[$i][$j+1] == false)
- $goodRandom = true;
- else
- $randomCell = rand(0,3);
- } else
- $randomCell = rand(0,3);
- break;
- case 3:
- if ($j - 1 >=0 && $j - 1 < 10) {
- if ($v[$i][$j-1] == false)
- $goodRandom = true;
- else
- $randomCell = rand(0,3);
- } else
- $randomCell = rand(0,3);
- break;
- }
- }
- switch ($randomCell) {
- case 0:
- $walls[$i][$j][1] = false;
- $walls[$i+1][$j][3] = false;
- $i++;
- break;
- case 1:
- $walls[$i][$j][3] = false;
- $walls[$i-1][$j][1] = false;
- $i++;
- break;
- case 2:
- $walls[$i][$j][2] = false;
- $walls[$i][$j+1][0] = false;
- $i++;
- break;
- case 3:
- $walls[$i][$j][0] = false;
- $walls[$i][$j-1][2] = false;
- $i++;
- break;
- }
- appleCider($i, $j);
- }
- }
- ?>
Add Comment
Please, Sign In to add comment