クリエイティブを楽しむ新メディア 牛の歩みで更新中!クリエイティブを楽しむ新メディア 牛の歩みで更新中!
プログラム・IT
【PHP】ランチェスターの第二法則による残存兵力算出フォーム
2022年3月24日(木曜日)

ランチェスターの第二法則による残存兵力算出フォームのソースコードを紹介します。

コードはPHPで書いたので、拡張子を"php"にしてウェブにアップロードすれば、そのまま動作します。

引数の取得、変数の演算、IF文による比較、フォーム入力など、ごく基礎的な処理だけで書いてあり、短いコードなので、PHP初心者の学習にも適しているかもしれません。

処理の意味についても、コメントしてありますので参考にしてください。

<head>
<title>ランチェスターの第二法則による残存兵力算出</title>
<meta name="viewport" content="width=480,">
<meta http-equiv="Content-Type" content="text/html; charset=uft-8">
<meta http-equiv="Cache-Control" content="no-cache">
</head>
<body>

<?php

  echo '<b>lanche.php</b><br><br>';

  //引数を取得
  if(isset($_GET['a1'])) {
    $a1 = $_GET['a1'];
  }
  if(isset($_GET['a2'])) {
    $a2 = $_GET['a2'];
  }

  if($a1<>0 || $a2<>0){ //引数指定があるときのみ結果表示

    //戦力を求める(兵数2乗)
    $a1f=$a1*$a1;
    $a2f=$a2*$a2;
    //戦力差を求める(絶対値)
    $a3f=abs($a1f-$a2f);
    //生存数を求める(√戦力)
    if($a3f<>0){
      $a3=sqrt($a3f);
    }

    //結果表示
    echo "結果<br><br>";
    echo "・軍勢1: 兵数=$a1(戦力=$a1f)<br>";
    echo "・軍勢2: 兵数=$a2(戦力=$a2f)<br>";
    if($a1>$a2){
      $result='軍勢1の勝利';
      $a4=$a1-$a3;//死者数を得る
    }
    if($a1<$a2){
      $result='軍勢2の勝利';
      $a4=$a2-$a3;//死者数を得る
    }
    if($a1==$a2){
      $result='両軍互角';
      $a4=$a1;//死者数を得る
    }
    $a3=round($a3,2);//生存数を小数点以下2ケタに
    $a4=round($a4,2);//死者数を小数点以下2ケタに
    echo "→$result: 生存数=$a3 死者数=$a4 (戦力差=$a3f)<br><br>";
  }

  //フォーム
  echo "比較戦力を指定<br><br>";
  echo "<form action=¥"lanche.php¥" method=¥"get¥" target=¥"_self¥">";
  echo " 軍勢1の兵数(半角数字)<br>";
  echo " <input type=¥"text¥" name=¥"a1¥" value=¥"$a1¥" required minlength=¥"1¥" size=¥"5¥" /><br>";
  echo " 軍勢2の兵数(半角数字)<br>";
  echo " <input type=¥"text¥" name=¥"a2¥" value=¥"$a2¥" required minlength=¥"1¥" size=¥"5¥" /><br>";
  echo "<br>";
  echo " <input type=¥"submit¥" value=¥"結果表示¥" />";
  echo "</form>";

  echo "<a href=¥"https://note.com/hpnm/n/n60a8f98214a2¥" target=¥"_blank¥">計算式(ランチェスターの法則)については、こちらから。</a>"
?>

フォームの動作は下のリンクから確認できます。お試しを!

コメントを記入

メールアドレスが公開されることはありません。 が付いている欄は必須項目です