こちらがJavaScriptで実装したコードです。ジョークも盛り込んであります。 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>マンドラゴラ農家の収穫ゲーム</title> </head> <body> <div id="game-board"></div> <script> // マンドラゴラの名前を10パターン用意 const mandrakeNames = ["ナオミ", "アンナ", "ローラ", "ジュリア", "サラ", "マリア", "アンジェラ", "カレン", "シャーリー", "メグミ"]; // 葉や茎、胸などの様子を5パターンずつ用意 const mandrakeAppearances = [ {leaves: "緑色の上品な葉を茂らせ、茎もしっかりしている。胸の形も美しく柔らかそう。", groin: "鼠径部・スリットともに色が綺麗で魅惑的。"}, {leaves: "茶色みがかった葉が若干しおれているが、茎は堅い。胸もしっかりしている。", groin: "鼠径部・スリットともに凸凹で独特の形。蜜も多めで濃厚な感触。"}, {leaves: "黄色みがかった葉が若干しおれていて、茎もやや細い。胸はやや小さめ。", groin: "鼠径部・スリットともに若干荒れているが、絶妙な角度で溝が深く魅惑的。"}, {leaves: "淡い緑色の葉が大きく蒸れ気味だが、茎はしっかりしている。胸のラインも美しい。", groin: "鼠径部はうっすらと赤く、スリットは吸い付くような感触がある。"}, {leaves: "エメラルドグリーンの葉が美しく、茎もしなやかで芯が強そう。胸の柔らかさにも惹かれる。", groin: "鼠径部・スリットともに細いが、柔らかく甘い匂いが魅惑的。"} ]; // マンドラゴラの状態を表示する関数を作成 function displayMandrakeState(state) { // 表示する要素を作成する const mandrakeName = document.createElement("div"); mandrakeName.innerText = state.name; const mandrakeAppearance = document.createElement("div"); mandrakeAppearance.innerText = state.appearance.leaves + " " + state.appearance.groin; const mandrakeAction = document.createElement("div"); mandrakeAction.innerText = state.action; // 画面に要素を追加 const gameBoard = document.getElementById("game-board"); gameBoard.innerHTML = ""; gameBoard.appendChild(mandrakeName); gameBoard.appendChild(mandrakeAppearance); gameBoard.appendChild(mandrakeAction); } // ゲーム開始 setTimeout(startGame, 2000); function startGame() { // ラウンド1: マンドラゴラの設定と表示 displayMandrakeState({ name: mandrakeNames[Math.floor(Math.random() * mandrakeNames.length)], appearance: mandrakeAppearances[Math.floor(Math.random() * mandrakeAppearances.length)], action: "マンドラゴラを育てました!" }); setTimeout(round2, 2000); // 次のラウンドに移行 } function round2() { // ラウンド2: マンドラゴラを引き抜いて表示 displayMandrakeState({ name: "マンドラゴラ", appearance: mandrakeAppearances[Math.floor(Math.random() * mandrakeAppearances.length)], action: "あなたはマンドラゴラを引き抜いた!" }); setTimeout(function() { displayMandrakeState({ name: "マンドラゴラ", appearance: mandrakeAppearances[Math.floor(Math.random() * mandrakeAppearances.length)], action: "マンドラゴラはぎゅっと抵抗しています!" }); }, 2000); // 2秒後に抵抗の表示 setTimeout(function() { displayMandrakeState({ name: "マンドラゴラ", appearance: mandrakeAppearances[Math.floor(Math.random() * mandrakeAppearances.length)], action: "胸や腰が激しく動いています!" }); }, 4000); // さらに2秒後に胸や腰の表示 setTimeout(function() { displayMandrakeState({ name: "マンドラゴラ", appearance: mandrakeAppearances[Math.floor(Math.random() * mandrakeAppearances.length)], action: "マンドラゴラは悲痛な声をあげ、薄い皮が破けました!" }); }, 6000); // さらに2秒後に皮が破ける表示 setTimeout(function() { displayMandrakeState({ name: "マンドラゴラ", appearance: mandrakeAppearances[Math.floor(Math.random() * mandrakeAppearances.length)], action: "マンドラゴラは力尽きました。" }); }, 8000); // さらに2秒後に力尽きた表示 setTimeout(round3, 10000); // 次のラウンドに移行 } function round3() { // ラウンド3: 横たわるマンドラゴラの様子を表示 displayMandrakeState({ name: "マンドラゴラ", appearance: mandrakeAppearances[Math.floor(Math.random() * mandrakeAppearances.length)], action: "あなたはマンドラゴラを横たわらせました!" }); setTimeout(function() { displayMandrakeState({ name: "マンドラゴラ", appearance: mandrakeAppearances[Math.floor(Math.random() * mandrakeAppearances.length)], action: "マンドラゴラはあなたを見つめています。" }); }, 2000); // 2秒後に顔の表示 setTimeout(function() { displayMandrakeState({ name: "マンドラゴラ", appearance: mandrakeAppearances[Math.floor(Math.random() * mandrakeAppearances.length)], action: "あなたはマンドラゴラの口の中に手を突っ込んでいた!" }); }, 4000); // さらに2秒後に口の中の表示 setTimeout(function() { displayMandrakeState({ name: "マンドラゴラ", appearance: mandrakeAppearances[Math.floor(Math.random() * mandrakeAppearances.length)], action: "マンドラゴラは気持ち良さそうにしています。" }); }, 6000); // さらに2秒後に体つきの表示 setTimeout(function() { displayMandrakeState({ name: "マンドラゴラ", appearance: mandrakeAppearances[Math.floor(Math.random() * mandrakeAppearances.length)], action: "あなたはマンドラゴラの胸を触っていた!" }); }, 8000); // さらに2秒後に胸の表示 setTimeout(function() { displayMandrakeState({ name: "マンドラゴラ", appearance: mandrakeAppearances[Math.floor(Math.random() * mandrakeAppearances.length)], action: "マンドラゴラは気持ち良さそうにしています。(あ、こんな曲作ってもいいのかな?)" }); }, 10000); // さらに2秒後に胸の触感の表示 setTimeout(function() { displayMandrakeState({ name: "マンドラゴラ", appearance: mandrakeAppearances[Math.floor(Math.random() * mandrakeAppearances.length)], action: "あなたはマンドラゴラのスリットに指を入れていた!" }); }, 12000); // さらに2秒後にスリットの表示 setTimeout(function() { const harvestMore = confirm("あともう一体収穫する?"); // ダイアログを表示 if (harvestMore) { startGame(); // ゲーム再スタート } else { displayMandrakeState({ name: "Game Over", appearance: {leaves: "静かな森", groin: ""}, action: "ご愛顧ありがとう!" }); } }, 14000); // さらに2秒後にゲーム終了の表示 } </script> </body> </html>