こちらはJavaScriptのCanvas要素を使って実装した、簡単な色当てゲームになります。プレイヤーは画面に表示される4つの色に対して正解の位置にドラッグ&ドロップで選んでいきます。制限時間があり、時間内にできるだけ多くの問題に回答することが目的です。
注意:このゲームは意味を持たないユーモラスなジョークとして、不適切な色合いが含まれる可能性があります。
```
<!DOCTYPE html>
<html>
<head>
<title>Color Game</title>
<style type="text/css">
canvas {
border: 3px solid black;
}
</style>
</head>
<body>
<canvas id="canvas" width="600" height="400"></canvas>
<script type="text/javascript">
// Define colors
var colors = ["yellow", "magenta", "cyan", "lime"];
// Shuffle colors
colors.sort(function(a, b){return 0.5 - Math.random()});
// Define answer
var answer = Math.floor(Math.random() * 4);
// Define timer
var time = 10;
var interval = setInterval(function(){
document.getElementById("timer").innerHTML = "Time remaining: " + time;
time--;
if (time < 0) {
clearInterval(interval);
alert("Game over! Your score: " + score);
}
}, 1000);
// Define score
var score = 0;
// Draw colors
var canvas = document.getElementById("canvas");
var context = canvas.getContext("2d");
var x = 50;
var y = 50;
var size = 100;
for (var i = 0; i < 4; i++) {
context.fillStyle = colors[i];
context.fillRect(x, y, size, size);
x += size + 50;
}
// Add drag and drop functionality
var drag = false;
var startX = 0;
var startY = 0;
canvas.addEventListener("mousedown", function(event){
drag = true;
startX = event.offsetX;
startY = event.offsetY;
});
canvas.addEventListener("mouseup", function(event){
if (drag) {
drag = false;
var endX = event.offsetX;
var endY = event.offsetY;
var diffX = endX - startX;
var diffY = endY - startY;
if (diffX > 0 && Math.abs(diffX) > Math.abs(diffY)) {
// Dragged right
if (answer == 0) {
score++;
alert("Correct! Your score: " + score);
showToast("再読み込みしてください");
} else {
alert("Wrong answer! Your score: " + score);
showToast("再読み込みしてください");
}
} else if (diffX < 0 && Math.abs(diffX) > Math.abs(diffY)) {
// Dragged left
if (answer == 1) {
score++;
alert("Correct! Your score: " + score);
showToast("再読み込みしてください");
} else {
alert("Wrong answer! Your score: " + score);
showToast("再読み込みしてください");
}
} else if (diffY > 0 && Math.abs(diffY) > Math.abs(diffX)) {
// Dragged down
if (answer == 2) {
score++;
alert("Correct! Your score: " + score);
showToast("再読み込みしてください");
} else {
alert("Wrong answer! Your score: " + score);
showToast("再読み込みしてください");
}
} else if (diffY < 0 && Math.abs(diffY) > Math.abs(diffX)) {
// Dragged up
if (answer == 3) {
score++;
alert("Correct! Your score: " + score);
showToast("再読み込みしてください");
} else {
alert("Wrong answer! Your score: " + score);
showToast("再読み込みしてください");
}
}
}
});
</script>
<div id="timer"></div>
</body>
</html>
```