では、襲撃の場合を見てみます。
sub STDOUT_ATTACK_FORM { print "<div class=\"cell\"><div class=\"char\">\n"; print "<img class=\"char\" src=\"$Char_Icon[$Login_Index]\" width=\"50\""; print "height=\"50\" alt=\"$Char_Name[$Login_Index]\"></div>\n"; print "<div class=\"name\">人狼の襲撃</div>\n"; print "<form method=\"POST\" action=\"$Cgi_Main\" class=\"mode11\">\n"; print "<input type=\"hidden\" name=\"mode\" value=\"52\">\n"; if($Exec_Attack[0] > -1 and $Exec_Attack[1] > -1 ){ print "人狼は$Char_Name[$Exec_Attack[0]]を襲撃の第1候補に、"; print "$Char_Name[$Exec_Attack[1]]を襲撃の第2候補に選んでいます。<br>\n"; print "第1候補 "; &STDOUT_ATTACK_SELECT(0); print " 第2候補 "; &STDOUT_ATTACK_SELECT(1); print "<input type=\"submit\" value=\"襲撃先を変更する\">\n"; }else{ print "襲撃先を選んでください。選ばない場合、貴方の襲撃先は"; print "ランダムに決定されます。<br>\n"; print "第1候補 "; &STDOUT_ATTACK_SELECT(0); print " 第2候補 "; &STDOUT_ATTACK_SELECT(1); print "<input type=\"submit\" value=\"襲撃先を設定する\">\n"; } print "</form><br class=\"clear\"></div>\n"; print "<br>\n"; }
第一候補、第二候補をそれぞれ設定できるよう、セレクトボックスを2つ用意しています。
セレクトボックスの出力はSTDOUT_ATTACK_SELECT サブルーチンで行っていますが、そのどちらが第一候補でどちらが第二候補なのかを判別するために、引数で0と1を渡すようにしています。
ちなみに襲撃先のセレクトボックスには、生きている人でかつ人間のみが含まれるよう、処理を記述する必要があります。
これで入力フォームの出力もできるようになった(はず)ですので、次はその入力したデータをファイルに追記する部分を見てみようと思います。