Guest User

Untitled

a guest
Jun 24th, 2018
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.50 KB | None | 0 0
  1. <?php
  2. $walls = array(10); //walls of the maze: n/e/s/w
  3. $v = array(10); //has this cell been visited
  4. $images = array(10); //images of the cells n/e/s/w = 1/2/4/8
  5.  
  6. for ($i = 0; $i < 15; $i++) {
  7. $walls[$i] = array(15);
  8. $v[$i] = array(15);
  9. $images[$i] = array(15);
  10. for ($j = 0; $j < 15; $j++) {
  11. $walls[$i][$j] = array(4);
  12. for ($k = 0; $k < 4; $k++)
  13. $walls[$i][$j][$k] = true;
  14. $v[$i][$j] = 1;
  15. $images[$i][$j] = 0;
  16. }
  17. }
  18.  
  19. appleCider(0, 0);
  20.  
  21. for ($i = 0; $i < 15; $i++)
  22. for ($j = 0; $j < 15; $j++)
  23. for ($k = 0; $k < 4; $k++)
  24. if (!$walls[$i][$j][$k]) {
  25. $images[$i][$j] += $k * 2;
  26. if ($k == 3)
  27. $images[$i][$j] += 2;
  28. if ($k == 0)
  29. $images[$i][$j] += 1;
  30. }
  31.  
  32. function appleCider($i, $j) {
  33. global $walls;
  34. global $v;
  35.  
  36. $v[$i][$j] = 1;
  37.  
  38.  
  39. if (!$v[($i + 1 >=0 && $i + 1 < 10) ? $i+1 : $i][$j] ||
  40. !$v[($i - 1 >=0 && $i - 1 < 10) ? $i-1 : $i][$j] ||
  41. !$v[$i][($j + 1 >=0 && $j + 1 < 10) ? $j+1 : $j] ||
  42. !$v[$i][($j - 1 >=0 && $j - 1 < 10) ? $j-1 : $j]) {
  43. $randomCell = rand(0,3);
  44. $goodRandom = false;
  45. while (!$goodRandom) {
  46. switch ($randomCell) {
  47. case 0:
  48. if ($i + 1 >=0 && $i + 1 < 10) {
  49. if ($v[$i+1][$j] == false)
  50. $goodRandom = true;
  51. else
  52. $randomCell = rand(0,3);
  53. } else
  54. $randomCell = rand(0,3);
  55. break;
  56. case 1:
  57. if ($i - 1 >=0 && $i - 1 < 10) {
  58. if ($v[$i-1][$j] == false)
  59. $goodRandom = true;
  60. else
  61. $randomCell = rand(0,3);
  62. } else
  63. $randomCell = rand(0,3);
  64. break;
  65. case 2:
  66. if ($j + 1 >=0 && $j + 1 < 10) {
  67. if ($v[$i][$j+1] == false)
  68. $goodRandom = true;
  69. else
  70. $randomCell = rand(0,3);
  71. } else
  72. $randomCell = rand(0,3);
  73. break;
  74. case 3:
  75. if ($j - 1 >=0 && $j - 1 < 10) {
  76. if ($v[$i][$j-1] == false)
  77. $goodRandom = true;
  78. else
  79. $randomCell = rand(0,3);
  80. } else
  81. $randomCell = rand(0,3);
  82. break;
  83. }
  84. }
  85.  
  86. switch ($randomCell) {
  87. case 0:
  88. $walls[$i][$j][1] = false;
  89. $walls[$i+1][$j][3] = false;
  90. $i++;
  91. break;
  92. case 1:
  93. $walls[$i][$j][3] = false;
  94. $walls[$i-1][$j][1] = false;
  95. $i++;
  96. break;
  97. case 2:
  98. $walls[$i][$j][2] = false;
  99. $walls[$i][$j+1][0] = false;
  100. $i++;
  101. break;
  102. case 3:
  103. $walls[$i][$j][0] = false;
  104. $walls[$i][$j-1][2] = false;
  105. $i++;
  106. break;
  107. }
  108. appleCider($i, $j);
  109. }
  110. }
  111. ?>
Add Comment
Please, Sign In to add comment