220 likes | 349 Views
英単語しりとり. 06t4071f 林華. 1.仕様. 英単語辞書用意 乱数より、先攻と後攻を決定 辞書にない単語を入力されたら、再入力 既に入力した単語が入力されたら、メッセージを出し、終了 すべての単語が使い終わったら、メッセージを出力、終了. 2、辞書の読み込み. $DOCUMENT_ROOT = $_SERVER['DOCUMENT_ROOT']; if (empty($_SESSION["WORDLIST"])){ $fp = fopen("$DOCUMENT_ROOT/../wordlist.txt", "r");
E N D
英単語しりとり 06t4071f 林華
1.仕様 • 英単語辞書用意 • 乱数より、先攻と後攻を決定 • 辞書にない単語を入力されたら、再入力 • 既に入力した単語が入力されたら、メッセージを出し、終了 • すべての単語が使い終わったら、メッセージを出力、終了
2、辞書の読み込み $DOCUMENT_ROOT = $_SERVER['DOCUMENT_ROOT']; if (empty($_SESSION["WORDLIST"])){ $fp = fopen("$DOCUMENT_ROOT/../wordlist.txt", "r"); while (!feof($fp)) $_SESSION["WORDLIST"][] = trim(fgets($fp)); $_SESSION["COUNT"] = count($_SESSION["WORDLIST"]); $_SESSION["USEDLIST"] = array(); $_SESSION["LASTWORD"] = ""; }
3.先攻を決める if (empty($word)){ $r = rand() % 10; if ($r < 5){ echo "<h2>先攻:あなた</h2><p>\n"; echo "最初の文字を決めてください"; $_SESSION["LASTWORD"] = "0"; print_result(""); }else{ echo "<h2>先攻:コンピュータ</h2><p>\n"; $r = rand() % $_SESSION["COUNT"]; $w = trim($_SESSION["WORDLIST"][$r]); $_SESSION["LASTWORD"] = $w; $_SESSION["USEDLIST"][] = $w; $_SESSION["USED_AUTO"][] = $w; print_result($w); }
4.入力済みの場合 }elseif (in_array($word, $_SESSION["USEDLIST"])){ echo "<strong>入力済み、あなたの負けた!</strong><p>"; if (in_array($word, $_SESSION["USED_COMPUTER"])){ $t = array_search($word, $_SESSION["USED_COMPUTER"]+1); echo '"'.$word.'"'." がコンピュータは$t 回目に使った。<br>"; echo "今度のしりとりで ".count($_SESSION["USEDLIST"])." 個の単語使用した。"; }else{ $t = array_search($word, $_SESSION["USED_USER"])+1; echo '"'.$word.'"'." があなたは$t 回目に使った。<br>"; echo "今度のしりとりで ".count($_SESSION["USEDLIST"])." 個の単語使用した。"; } }
5.しりとりルール違反の場合 $word = trim($_POST["str"]); $last_alph = $_SESSION["LASTWORD"] [strlen($_SESSION["LASTWORD"]) - 1]; }elseif ($word[0] != $last_alph && $last_alph[0] != "0") echo "しりとりルール違反のため、あなたの負けだ!";
6.存在しない単語の場合 elseif (!in_array($word, $_SESSION["WORDLIST"]) && $last_alph[0] != "0"){ echo "単語存在しません。再度入力してください。"; print_result($_SESSION["LASTWORD"]); }
7.正しい単語が入力された場合 $_SESSION["LASTWORD"] = $word; $_SESSION["USEDLIST"][] = $word; $_SESSION["USED_USER"][] = $word; for ($i=0; $i<$_SESSION["COUNT"]; $i++){ $auto = $_SESSION["WORDLIST"][$i]; if ($auto[0] == $word[strlen($word)-1] && !in_array($auto, $_SESSION["USEDLIST"])){ $_SESSION["LASTWORD"] = $auto; $_SESSION["USEDLIST"][] = $auto; $_SESSION["USED_COMPUTER"][] = $auto; print_result($auto); break; } }
8.コンピュータの負け if ($i == $_SESSION["COUNT"]){ echo "あなたは偉い、すべての単語を覚えて、コンピュータの負けだ。<br>"; echo "今度のしりとりで ".$i." 個の単語使用した。"; }