現在、PHPを学習中です。
$_POST、$_GET変数の学習の一環として(というよりは条件分岐の学習になっているような気がしますが)、しりとりゲームを作ってみようと思い作成中なのですが、
なかなか思うように動かせません。
一通り思いつくことは試してみたのですが、うまく行かなかったため質問させていただきます。
記述中のコードですが、
html
1<div class="form"> 2 <form action="index.php" method="post"> 3 <input type="text" name="comment"> 4 <br> 5 <input type="submit" value="送信"> 6 </form> 7</div> 8 9<div class="siritori-spaces"> 10 <?php 11 for($i=1; $i <= 10; $i++){ 12 ?> 13 <div class="item"> 14 <div class="space" style="height: 50px; width:200px; border:2px solid black; float: left;"> 15 <p> 16 <?php 17 $boxNumber = $i; 18 if(isset($_POST['comment'])){ 19 $comment = $_POST['comment']; 20 if($i === $boxNumber){ 21 echo $boxNumber.".".$comment; 22 } 23 } 24 ?> 25 </p> 26 </div> 27 <div class="arrow"> 28 <p>==></p> 29 </div> 30 </div> 31 32 <?php }; ?> 33</div> 34
#想定しているやり方
for文で(ボックス+矢印)を10個作り、
formで取得したテキストをその中に1か所ずつ設置していく。
今のところは最初の文字と終わりの文字の一致判定は無視しています。
#わからないこと
現在のコードではフォームで取得したテキストが全てのボックスに入ってしまい、
(りんご⇒りんご⇒りんご⇒りんご、、、)
最初の1つの箱に入れる、ということがまずできません。
その後は箱に対して判定を行い、内容が入っていれば次の箱に入れる、という
やり方を想定しています。
#自分なりに考えた原因
forですべてを括ってしまっているため、1箱ずつの判定を記述できない。
試しに変数boxNumberを用意して箱内でechoしたところ、
番号の割り振りは成功していたのでこの辺りをつかって
一つずつの箱に番号の概念を与えてif分に反映させていけるのではないか?
と考えてはいるのですが、やり方を思いつきません。
.space内でに記述してあるifがその痕跡なのですが、
よくよく考えてみるとfor内での処理なのだからこの部分が偽になることってないよねって
いったん考え直しているところです。
経験者の方から見て、ここのやり方は不適切だとか、
そもそもこっちのやり方のほうがスムーズだとか、
このゲームを作るにあたっての枠組みといいますか、組み立て方、アルゴリズムは
こっちのほうが楽じゃない?みたいなものもあれば、
ご教授お願いいたします。
回答1件
あなたの回答
tips
プレビュー