Advertisement
swalter

Desafío Ludico - Juego de la vida V3

Oct 15th, 2014
207
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.99 KB | None | 0 0
  1. <?php
  2.  
  3. //seccion de funciones:
  4. function construirMedioAmbiente($columnas, $filas) {
  5. $tablero = array();
  6. for ($x = 0; $x < $columnas; $x++) {
  7. for ($y = 0; $y < $filas; $y++) {
  8. $tablero[$x][$y] = (rand(0, 100) % 2) ? 1 : 0;
  9. }
  10. }
  11. return $tablero;
  12. }
  13.  
  14. function obtenerNuevoEstado($x, $y, array $medioAmbiente) {
  15. $n = 0;
  16. if (isset($medioAmbiente[$x][$y])) {
  17. if (isset($medioAmbiente[$x - 1][$y])) {
  18. $n+= $medioAmbiente[$x - 1][$y];
  19. }
  20. if (isset($medioAmbiente[$x - 1][$y - 1])) {
  21. $n+= $medioAmbiente[$x - 1][$y - 1];
  22. }
  23. if (isset($medioAmbiente[$x][$y - 1])) {
  24. $n+= $medioAmbiente[$x][$y - 1];
  25. }
  26. if (isset($medioAmbiente[$x + 1][$y - 1])) {
  27. $n+= $medioAmbiente[$x + 1][$y - 1];
  28. }
  29. if (isset($medioAmbiente[$x + 1][$y])) {
  30. $n+= $medioAmbiente[$x + 1][$y];
  31. }
  32. if (isset($medioAmbiente[$x + 1][$y + 1])) {
  33. $n+= $medioAmbiente[$x + 1][$y + 1];
  34. }
  35. if (isset($medioAmbiente[$x][$y + 1])) {
  36. $n+= $medioAmbiente[$x][$y + 1];
  37. }
  38. if (isset($medioAmbiente[$x - 1][$y + 1])) {
  39. $n+= $medioAmbiente[$x - 1][$y + 1];
  40. }
  41.  
  42. if ($n < 2) {
  43. return 0;
  44. }
  45.  
  46. if ($n > 3) {
  47. return 0;
  48. }
  49.  
  50. if ($n == 3) {
  51. return 1;
  52. }
  53.  
  54. if ($n == 2) {
  55. return $medioAmbiente[$x][$y];
  56. }
  57. }
  58. exit('error');
  59. }
  60.  
  61. function procesarMedioAmbiente($medioAmbiente){
  62. foreach ($medioAmbiente as $x => $subArray) {
  63. foreach ($subArray as $y => $estado){
  64. $medioAmbiente[$x][$y] = obtenerNuevoEstado($x, $y, $medioAmbiente);
  65. }
  66. }
  67. return $medioAmbiente;
  68. }
  69. //inicia la aplicacion:
  70. session_start();
  71.  
  72. $reset = (isset($_GET['reset'])) ? true : false;
  73.  
  74. if (!isset($_SESSION['medio_ambiente'])) {
  75. $_SESSION['medio_ambiente'] = construirMedioAmbiente(20, 10);
  76. }else{
  77. $_SESSION['medio_ambiente'] = procesarMedioAmbiente($_SESSION['medio_ambiente']);
  78. }
  79.  
  80. if ($reset) {
  81. $_SESSION['medio_ambiente'] = construirMedioAmbiente(20, 10);
  82. header('Location: ' . $_SERVER['PHP_SELF']);
  83. }
  84. ?>
  85.  
  86. <meta http-equiv="refresh" content="1">
  87. <br/>
  88. <p><a href="?reset=1">Reset Medio Ambiente</a></p>
  89. <?php
  90. echo '<pre>';
  91. print_r($_SESSION['medio_ambiente']);
  92. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement