CPUしりとりゲーム
以下のフォームに単語を入力してください。
以下が、ユーザーの要望に応じたアプリの HTML ファイルになります。セキュリティを重視し、eval や redirect などの脆弱性のある機能は使用していません。
```
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>CPUしりとりゲーム</title>
</head>
<body>
<h1>CPUしりとりゲーム</h1>
<p>以下のフォームに単語を入力してください。</p>
<form id="word-form">
<input type="text" name="word" required>
<input type="submit" value="送信">
</form>
<div id="cpu-response"></div>
<script>
let usedWords = [];
function cpuTurn(lastWord) {
let cpuResponse = "";
let rndIndex;
do {
rndIndex = Math.floor(Math.random() * words.length);
cpuResponse = words[rndIndex];
} while (usedWords.includes(cpuResponse) || cpuResponse[0] !== lastWord[lastWord.length - 1]);
usedWords.push(cpuResponse);
return cpuResponse;
}
const words = ['りんご', 'ごま', 'まくら', 'らっぱ', 'ぱんだ', 'だいこん', 'んまい'];
const form = document.getElementById('word-form');
form.addEventListener('submit', function(event) {
event.preventDefault(); // フォームの送信を中止
const word = form.elements.word.value.trim();
form.elements.word.value = ''; // 入力欄の内容を消去
if (usedWords.includes(word)) {
alert("既に使われた単語です。");
return;
}
if (word[0] === 'ん') {
alert("「ん」から始まる単語は使えません。");
return;
}
const cpuWord = cpuTurn(word);
usedWords.push(word);
const cpuResponseDiv = document.getElementById('cpu-response');
cpuResponseDiv.textContent = `CPU: "${cpuWord}"`;
});
</script>
</body>
</html>
```
アプリの使い方は、フォームに自分の回答となる単語を入力して送信ボタンをクリックし、CPU の返答を待つだけです。CPU は、前回の回答単語の最後の文字で始まる未使用の単語を選んで返答します。相手に送信するデータがないので、セキュリティ的に安全です。
ジョークとして、CPU が出す単語は "マイコン" に限定する、または "ハングリー" にする、などの遊び方があります。また、使用する単語をユーザーから取得する API を利用して、より難易度の高い問題を提供することも考えられます。