Advertisement
repente

Untitled

Jun 19th, 2019
148
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.32 KB | None | 0 0
  1. <?php
  2.  
  3. #composer dump (update autoload meta)
  4.  
  5. /**
  6. * The function `form` controls the output of the desired form for the game
  7. */
  8.  
  9. function form()
  10. {
  11. function sub01()
  12. {
  13. if (isset($_GET["form"])) {
  14. switch ($_GET["form"]) {
  15. case '1':
  16. $_SESSION["players_count"] = [
  17. "count" => (int) $_GET["count"],
  18. ];
  19. $_SESSION["form"] = 2;
  20. break;
  21.  
  22. case '2':
  23. // При нажатии кнопки "Send" на обезъянках обрабатываться будет здесь:
  24. $_SESSION["players"] = [];
  25. $i = 1;
  26. while (true) {
  27. if (array_key_exists("name_player_$i", $_GET)) {
  28. $_SESSION["players"][] = [$_GET["name_player_$i"], $_GET["type_player_$i"]];
  29. } else {
  30. break;
  31. }
  32. $i++;
  33. }
  34.  
  35. $_SESSION["form"] = 3;
  36. break;
  37. }
  38. }
  39. }
  40.  
  41.  
  42.  
  43. function sub02()
  44. {
  45. $index = $_SESSION["form"];
  46. $form = '
  47. <form method="GET">
  48. <fieldset>
  49. <legend>Enter data players</legend>
  50. <label>%s</label>
  51. %s
  52. <input type="hidden" name="form" value="%s">
  53. </fieldset>
  54. </form>
  55. ';
  56. switch ($index) {
  57. case 1:
  58. $name = "Number of players? => ";
  59. $field = '<input required type="number" name="count">';
  60. $field .= '<input type="submit" name="btn" value="Send">';
  61. $codeForm = "1";
  62. return sprintf($form, $name, $field, $codeForm);
  63.  
  64. case 2:
  65. $countPlayers = $_SESSION["players_count"]["count"];
  66. $name = "Enter player names" . "<br>";
  67. $field = '';
  68. for ($i = 0; $i < $countPlayers; $i++) {
  69. $field .= $i + 1 . '. <input placeholder="name player" required type="text" name="name_player_'. ($i + 1) . '">';
  70. $field .=
  71. '
  72. <select name="type_player_' . ($i + 1) .'">
  73. <option value="Human">Human</option>
  74. <option value="Machine">Machine</option>
  75. </select> <br>
  76. ';
  77. };
  78. $field .= '<input type="submit" name="btn" value="Send">';
  79. $codeForm = "2";
  80. return sprintf($form, $name, $field, $codeForm);
  81.  
  82. case 3:
  83. $field = "";
  84. if (isset($_SESSION["players"])) {
  85. $i = 1;
  86. foreach ($_SESSION["players"] as $value) {
  87. $field .= "😆 $i. " . "Player [" . $value[0] . "] : ready => OK!" . '<br>';
  88. $i++;
  89. }
  90. }
  91. $field .= '<a href="game"><button>Start Game</button></a>';
  92. return $field;
  93. break;
  94. }
  95. }
  96. sub01();
  97.  
  98. return sub02();
  99. }
  100.  
  101. $form = 'form';
  102.  
  103. /**
  104. * Showing message Hello World, rendered within the standard page layout.
  105. */
  106.  
  107. $app->router->get("dice-game/form", function () use ($app, $form) {
  108. $title = "Please insert data players";
  109. $data = [
  110. "name" => "hello-world",
  111. "content" => "Hello World in " . __FILE__,
  112. "form" => $form(),
  113. ];
  114.  
  115. $app->page->add("dice/starting", $data);
  116.  
  117. return $app->page->render([
  118. "title" => $title,
  119. ]);
  120. });
  121.  
  122.  
  123.  
  124. $app->router->get("dice-game/start", function () use ($app) {
  125.  
  126. $_SESSION["form"] = 1;
  127. $_SESSION["players_count"] = null;
  128. $_SESSION["players"] = null;
  129. $_SESSION["dice_game"] = null;
  130.  
  131. $title = "Welcome Dice Game";
  132.  
  133. $app->page->add("dice/short-game-terms");
  134.  
  135. return $app->page->render([
  136. "title" => $title,
  137. ]);
  138. });
  139.  
  140.  
  141. $app->router->get("dice-game/game", function () use ($app) {
  142.  
  143. $winner = null;
  144. $type_player = null;
  145. $name_player_move = null;
  146. $result = null;
  147. $trows = [6, 6];
  148.  
  149. if (!($_SESSION["dice_game"])) {
  150. $players = [];
  151. foreach ($_SESSION["players"] as $key => $value) {
  152. $players[] = [$value[0], $value[1]];
  153. }
  154. $_SESSION["dice_game"] = new My\Dice\Dice($players);
  155. $_SESSION["dice_game"]->contestWhoIsFirst();
  156. $type_player = $_SESSION["dice_game"]->players[0]->type;
  157. $name_player_move = $_SESSION["dice_game"]->players[0]->name;
  158. }
  159.  
  160. if (isset($_GET["btn"])) {
  161. $result = $_SESSION["dice_game"]->moves();
  162. switch ($result[0]) {
  163. case 'next':
  164. $name_player_move = $result[1];
  165. $type_player = $result[2];
  166. $trows = $result[3];
  167. break;
  168.  
  169. case 'winner':
  170. $winner = $result[1];
  171. break;
  172. }
  173. }
  174.  
  175. if (isset($_GET["continue"])) {
  176. $result = $_SESSION["dice_game"]->moves(1);
  177. switch ($result[0]) {
  178. case 'next':
  179. $name_player_move = $result[1];
  180. $type_player = $result[2];
  181. $trows = $result[3];
  182. break;
  183.  
  184. case 'winner':
  185. $winner = $result[1];
  186. break;
  187. }
  188. }
  189.  
  190. $players_statistics = $_SESSION["dice_game"]->printedPlayers();
  191. $currentTotal = $_SESSION["dice_game"]->currentTotal ? $_SESSION["dice_game"]->currentTotal : $_SESSION["dice_game"]->tempValue;
  192.  
  193. $title = "Live game Dice 100";
  194. $data = [
  195. "h1" => $title,
  196. "statistics" => $players_statistics,
  197. "type_player" => $type_player,
  198. "name_player_move" => $name_player_move,
  199. "winner" => $winner,
  200. "trows" => $trows,
  201. "current" => $currentTotal,
  202. ];
  203.  
  204. $app->page->add("dice/game", $data);
  205. // $app->page->add("example/debug");
  206.  
  207. return $app->page->render([
  208. "title" => $title,
  209. ]);
  210. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement