一段时间内PHP中的递归函数

时间:2018-05-27 15:02:13

标签: php recursion while-loop

我在做Pandemic棋盘游戏。我正在用PHP制作游戏逻辑(大部分都是这样),当有一个超过3个立方体的城市时,会发生一次爆发,​​即连接到该城市的城市将增加1个立方体。

现在,我正在用PHP完成所有这些工作,我有一个功能可以增加城市中的立方体,并且对于连接到它的每个城市,爆发也会增加,所以我正在做一个递归在一段时间内发挥作用。

(我告诉你这一切,因为我要在示例中删除一些代码。希望我自己明白了)

PHP功能

  function AddInfectionCubes($city_name, $n_cubes, $game_id) {
    $insert = "INSERT INTO game_city(id_game, city_name, disease_cubes) VALUES('$game_id', '$city_name', '$n_cubes')";

    $res = mysqli_query($conn, $insert);
    if(!$res) {
      $sql_cubes = mysqli_query($conn, "SELECT disease_cubes FROM game_city WHERE city_name='$city_name' AND id_game='$game_id'");
      $get_cubes = mysqli_fetch_assoc($sql_cubes);

      $disease_cubes = $get_cubes['disease_cubes'] + $n_cubes;//quantidade de cubos após adicionar outros aos que já existiam
      if ($disease_cubes > 3){
        $update_outbreak_marker = mysqli_query($conn, "UPDATE Game SET outbreak_marker = outbreak_marker + 1 WHERE id = '$game_id'");

        $outbreak_cities = mysqli_query($conn, "SELECT city_to FROM connections WHERE city_from = '$city_name'");
        while ($c = mysqli_fetch_assoc($outbreak_cities)){
          $city_to = $c['city_to'];
          $n_cubes = 1;
          AddInfectionCubes($city_to, $n_cubes, $game_id);
        }
      } else {
        $update = mysqli_query($conn, "UPDATE game_city SET disease_cubes='$disease_cubes' WHERE city_name='$city_name' AND id_game='$game_id'");
      }
    }
  };

  AddInfectionCubes($city_name, $n_cubes, $game_id);

我不是我做错了,但递归函数不起作用。是因为它在一段时间内?

注意

如果我不将它作为一个递归函数,它的工作完美(但不要做爆发的事情)。 sql很好,变量很好等等。

问题

有没有办法在没有递归功能的情况下使用它?我可以暂时做一下吗?

0 个答案:

没有答案