かげ絵クイズアプリをつくろう!(小学生でもできる!)

AI・プログラミング

かげ絵クイズアプリをつくろう!(小学生でもできる!)

こんにちは!今回は「黒いシルエットを見て、なんの動物か当てるクイズアプリ」を、パソコンのメモ帳だけで作る方法を紹介します!
むずかしく見えるけど、じつはとってもカンタン。さあ、いっしょにやってみよう!

完成したらこんなアプリになります→かげ絵クイズアプリ


ChatGPTにこうたずねよう!

まず、ChatGPTにこんなふうに聞いてみてね:

プロンプト(コピペOK):

かげ絵クイズゲーム(動物のシルエットを見て3つから答えるクイズ)を、HTMLとJavaScriptで作ってください。10問セットで、最後に点数と評価を表示して、「もういちどチャレンジ」ボタンもつけてください。小学生でも楽しめるように!


メモ帳でコードをはりつけよう!

① パソコンの「メモ帳(Notepad)」を開きます。
② ChatGPTが出してくれたコード(下にあるよ!)を、ぜんぶコピーして貼りつけます。


ファイルを保存しよう!

① 上のメニューで「ファイル」→「名前を付けて保存」
② 「ファイル名」を kagequiz.html にします(←名前はなんでもいいけど、最後は .html にしてね)
③ 「ファイルの種類」は「すべてのファイル」にして、「UTF-8」で保存!


ゲームをひらいてみよう!

① 保存した kagequiz.html ファイルを ダブルクリック
② すると…ブラウザでゲームがひらきます!🎉
黒いかげ絵を見て、正しい動物をえらんでね!


ChatGPTが作ったコード(そのままコピーしてOK!)

<!DOCTYPE html>
<html>
<head>
<meta charset=”UTF-8″>
<title>かげ絵クイズ</title>
<style>
body { font-family: sans-serif; text-align: center; background: #f0f0f0; }
#shadow {
font-size: 100px;
margin: 20px;
filter: brightness(0) saturate(100%); /* 黒くする */
}
#result, #score { font-size: 24px; margin-top: 20px; }
button { padding: 10px 20px; font-size: 18px; margin: 10px; }
#retry { display: none; margin-top: 20px; }
</style>
</head>
<body>
<h1>かげ絵クイズ</h1>
<div id=”questionNum”></div>
<div id=”shadow”>❓</div>
<div id=”choices”></div>
<div id=”result”></div>
<div id=”score”></div>
<button id=”retry” onclick=”startGame()”>もう一度チャレンジ</button>

<script>
const animals = [
{ emoji: “🐶”, name: “いぬ” }, { emoji: “🐱”, name: “ねこ” },
{ emoji: “🐭”, name: “ねずみ” }, { emoji: “🐹”, name: “ハムスター” },
{ emoji: “🐰”, name: “うさぎ” }, { emoji: “🦊”, name: “きつね” },
{ emoji: “🐻”, name: “くま” }, { emoji: “🐼”, name: “パンダ” },
{ emoji: “🐨”, name: “コアラ” }, { emoji: “🐯”, name: “とら” },
{ emoji: “🦁”, name: “ライオン” }, { emoji: “🐮”, name: “うし” },
{ emoji: “🐷”, name: “ぶた” }, { emoji: “🐸”, name: “かえる” },
{ emoji: “🐵”, name: “さる” }, { emoji: “🐔”, name: “にわとり” },
{ emoji: “🐧”, name: “ペンギン” }, { emoji: “🐦”, name: “ことり” },
{ emoji: “🦉”, name: “ふくろう” }, { emoji: “🦇”, name: “こうもり” },
{ emoji: “🐍”, name: “へび” }, { emoji: “🐢”, name: “かめ” },
{ emoji: “🐙”, name: “たこ” }, { emoji: “🦑”, name: “いか” },
{ emoji: “🦀”, name: “かに” }, { emoji: “🐬”, name: “いるか” },
{ emoji: “🐳”, name: “くじら” }, { emoji: “🐘”, name: “ぞう” },
{ emoji: “🦒”, name: “きりん” }, { emoji: “🦓”, name: “しまうま” }
];

let quiz = [];
let current = 0;
let score = 0;

function shuffle(array) {
for (let i = array.length – 1; i > 0; i–) {
const j = Math.floor(Math.random() * (i + 1));
[array[i], array[j]] = [array[j], array[i]];
}
}

function startGame() {
quiz = [];
score = 0;
current = 0;
document.getElementById(“result”).textContent = “”;
document.getElementById(“score”).textContent = “”;
document.getElementById(“retry”).style.display = “none”;

const quizCandidates = […animals];
shuffle(quizCandidates);
quiz = quizCandidates.slice(0, 10);
showQuiz();
}

function showQuiz() {
if (current >= quiz.length) {
showScore();
return;
}

const q = quiz[current];
document.getElementById(“questionNum”).textContent = `もんだい ${current + 1} / 10`;
document.getElementById(“shadow”).textContent = q.emoji;
const choices = generateChoices(q.name);
const choicesDiv = document.getElementById(“choices”);
choicesDiv.innerHTML = “”;
choices.forEach(choice => {
const btn = document.createElement(“button”);
btn.textContent = choice;
btn.onclick = () => checkAnswer(choice);
choicesDiv.appendChild(btn);
});
}

function generateChoices(correct) {
const names = animals.map(a => a.name).filter(n => n !== correct);
shuffle(names);
const options = [correct, names[0], names[1]];
shuffle(options);
return options;
}

function checkAnswer(ans) {
if (ans === quiz[current].name) {
score++;
document.getElementById(“result”).textContent = “せいかい!🎉”;
} else {
document.getElementById(“result”).textContent = “ざんねん…💦”;
}
current++;
setTimeout(() => {
document.getElementById(“result”).textContent = “”;
showQuiz();
}, 1000);
}

function showScore() {
let comment = “”;
if (score === 10) comment = “パーフェクト!すごい!🌟”;
else if (score >= 7) comment = “とてもよくできました!👏”;
else if (score >= 4) comment = “がんばったね!もういちどチャレンジしてみよう!”;
else comment = “ざんねん…でもつぎはきっとできる!💪”;

document.getElementById(“score”).textContent = `あなたの点数:${score} / 10\n${comment}`;
document.getElementById(“retry”).style.display = “inline-block”;
}

startGame();
</script>
</body>
</html>


もっとよくするアイデア(まとめ)

「もっと楽しくするにはどうする?」
こんなこともできるよ:

✅ リセットボタンを追加してみよう!

  • 「リセット」ボタンをつけて、いつでも最初にもどれるようにすると、もっと遊びやすい!

<button onclick="startGame()">リセットする</button>

このコードを もう一度チャレンジ ボタンの下に足してみよう!


✅ 他にもこんな工夫ができるよ!

アイデア できること
果物のかげ絵にする 🍎や🍌などの果物に変えてみよう!
スコアに音をつける 正解・不正解で「ピンポーン」「ブッブー」
タイマーをつける 時間内に答えられるかチャレンジ!

おわりに

自分だけのクイズアプリ、作れたかな?
メモ帳だけでこんなにすごいアプリが作れるなんて、びっくりだよね!

おともだちや家族にも見せてみよう!
そして「もっとこうしたいな~」と思ったら、またChatGPTにきいてみてね!

コメント

タイトルとURLをコピーしました