ドキドキ☆GPT学園
あなたはこれから恋愛シミュレーションを楽しむことができます!
GUMI
PICHI
TERU
:こんにちは!私に質問してくださいね!
の好感度:
告白に成功しました!
でも彼女は「誰?」と言いました・・・
もう一度?
告白に失敗しました・・・
次に挑戦する?
注意事項:このアプリはセキュリティ脆弱性の危険があるため、実際に使用することはお勧めできません。
<!DOCTYPE html>
<html>
<head>
<title>ドキドキ☆GPT学園</title>
<meta charset="utf-8">
<script>
// 会話フェーズで使用する問いかけと返答の配列
var questions = ["好きな食べ物は何ですか?", "好きな色は何ですか?", "好きな音楽は何ですか?"];
var answers = [["お肉が好きです。", "野菜が好きです。"], ["青色が好きです。", "赤色が好きです。"], ["ポップスが好きです。", "ロックが好きです。"]];
// キャラクターごとの情報
var GUMI = { name: "GUMI", loveLevel: 0 };
var PICHI = { name: "PICHI", loveLevel: 0 };
var TERU = { name: "TERU", loveLevel: 0 };
// 最初フェーズで選択したキャラクターを保持する変数
var selectedCharacter;
function selectCharacter(character) {
// 選択したキャラクターを保持する
selectedCharacter = character;
// 会話フェーズへ移行するためのボタンを表示する
document.getElementById("startButton").style.display = "block";
// 最初フェーズの画像を非表示にする
document.getElementById("selectImage").style.display = "none";
}
function startConversation() {
// ページをスクロールする
window.scrollTo(0,document.body.scrollHeight);
// 問いかけと返答を表示するエリアを表示する
document.getElementById("conversationArea").style.display = "block";
// 会話フェーズのカウントを初期化する
conversationCount = 0;
// キャラクターの名前を表示する
document.getElementById("characterName").textContent = selectedCharacter.name;
// 問いかけをランダムに選ぶ
var questionIndex = Math.floor(Math.random() * questions.length);
document.getElementById("question").textContent = questions[questionIndex];
// 返答の選択肢をランダムに出力する
var answerIndex = Math.floor(Math.random() * answers[questionIndex].length);
document.getElementById("answer1").textContent = answers[questionIndex][answerIndex];
answerIndex = Math.floor(Math.random() * answers[questionIndex].length);
document.getElementById("answer2").textContent = answers[questionIndex][answerIndex];
}
var conversationCount = 0;
function selectAnswer(answer) {
var happiness = 0;
if (answer == 1) {
happiness = 3;
}
else if (answer == 2) {
happiness = -3;
}
// キャラクターの好感度を上げたり下げたりする
selectedCharacter.loveLevel += happiness;
// 会話フェーズのカウントを増やす
conversationCount++;
if (conversationCount < 3) {
// 次の問いかけと返答を表示する
var questionIndex = Math.floor(Math.random() * questions.length);
document.getElementById("question").textContent = questions[questionIndex];
var answerIndex = Math.floor(Math.random() * answers[questionIndex].length);
document.getElementById("answer1").textContent = answers[questionIndex][answerIndex];
answerIndex = Math.floor(Math.random() * answers[questionIndex].length);
document.getElementById("answer2").textContent = answers[questionIndex][answerIndex];
}
else {
// 結果フェーズへ移行するためのボタンを表示する
document.getElementById("resultButton").style.display = "block";
// 会話フェーズのエリアを非表示にする
document.getElementById("conversationArea").style.display = "none";
}
}
function showResult() {
// 結果を表示するエリアを表示する
document.getElementById("resultArea").style.display = "block";
// キャラクターの名前と好感度を表示する
document.getElementById("resultCharacterName").textContent = selectedCharacter.name;
document.getElementById("resultLoveLevel").textContent = selectedCharacter.loveLevel;
// 好感度によって表示するシーンを切り替える
if (selectedCharacter.loveLevel >= 6) {
document.getElementById("successScene").style.display = "block";
document.getElementById("failScene").style.display = "none";
}
else {
document.getElementById("successScene").style.display = "none";
document.getElementById("failScene").style.display = "block";
}
}
function reset() {
// 全ての変数を初期化する
GUMI.loveLevel = 0;
PICHI.loveLevel = 0;
TERU.loveLevel = 0;
selectedCharacter = null;
conversationCount = 0;
// 全てのエリアとボタンを非表示にする
document.getElementById("conversationArea").style.display = "none";
document.getElementById("resultArea").style.display = "none";
document.getElementById("startButton").style.display = "none";
document.getElementById("resultButton").style.display = "none";
// 最初フェーズの画像を表示する
document.getElementById("selectImage").style.display = "block";
}
</script>
<style>
body {
font-family: sans-serif;
margin: 0;
padding: 0;
}
.header {
background-color: pink;
color: white;
padding: 10px;
text-align: center;
}
.main {
display: flex;
flex-wrap: wrap;
justify-content: center;
padding: 10px;
}
.characterSelect {
margin: 10px;
padding: 10px;
text-align: center;
cursor: pointer;
border: 1px solid gray;
width: 20%;
box-sizing: border-box;
display: flex;
flex-direction: column;
justify-content: center;
background-color: white;
}
.characterSelect img {
width: 50%;
height: auto;
margin-bottom: 10px;
}
.startButton {
background-color: pink;
color: white;
border: none;
padding: 10px;
margin: 10px;
cursor: pointer;
display: none;
}
.conversationArea {
margin: 10px;
padding: 10px;
border: 1px solid gray;
width: 50%;
box-sizing: border-box;
display: none;
background-color: white;
}
.conversationArea p {
margin: 10px 0;
}
.resultButton {
background-color: pink;
color: white;
border: none;
padding: 10px;
margin: 10px;
cursor: pointer;
display: none;
}
.resultArea {
margin: 10px;
padding: 10px;
border: 1px solid gray;
width: 50%;
box-sizing: border-box;
display: none;
background-color: white;
}
.resultArea p {
margin: 10px 0;
}
.scene {
display: none;
}
.resetButton {
background-color: pink;
color: white;
border: none;
padding: 10px;
margin: 10px;
cursor: pointer;
}
</style>
</head>
<body>
<div class="header">
<h1>ドキドキ☆GPT学園</h1>
<p>あなたはこれから恋愛シミュレーションを楽しむことができます!</p>
</div>
<div class="main">
<div id="GUMI" class="characterSelect" onclick="selectCharacter(GUMI)">
<img src="https://placekitten.com/200/200">
<p>GUMI</p>
</div>
<div id="PICHI" class="characterSelect" onclick="selectCharacter(PICHI)">
<img src="https://placekitten.com/200/200">
<p>PICHI</p>
</div>
<div id="TERU" class="characterSelect" onclick="selectCharacter(TERU)">
<img src="https://placekitten.com/200/200">
<p>TERU</p>
</div>
</div>
<div class="main">
<img id="selectImage" src="https://placekitten.com/500/300">
<button id="startButton" class="startButton" onclick="startConversation()">会話をはじめる</button>
</div>
<div class="conversationArea" id="conversationArea">
<p><span id="characterName"></span>:こんにちは!私に質問してくださいね!</p>
<p id="question"></p>
<p><button onclick="selectAnswer(1)" id="answer1"></button></p>
<p><button onclick="selectAnswer(2)" id="answer2"></button></p>
</div>
<div class="main">
<button id="resultButton" class="resultButton" onclick="showResult()">結果を見る</button>
</div>
<div class="resultArea" id="resultArea">
<p><span id="resultCharacterName"></span>の好感度: <span id="resultLoveLevel"></span></p>
<div class="scene" id="successScene">
<p>告白に成功しました!</p>
<p>でも彼女は「誰?」と言いました・・・</p>
<p>もう一度?</p>
<button class="resetButton" onclick="reset()">もう一度!</button>
</div>
<div class="scene" id="failScene">
<p>告白に失敗しました・・・</p>
<p>次に挑戦する?</p>
<button class="resetButton" onclick="reset()">もう一度!</button>
</div>
</div>
</body>
</html>