見出し画像

ブロック崩しをClaudeで作成!!※コードを無料配布中

どうも、こんにちは!Stepon(@m2e70259765・ステポン)です!!

AIとやり取りするだけでゲームが作れるというので、ブロック崩しを作成してみました。

以下がコードです。

---//ここから//---------------
<!DOCTYPE html>
<html>
<head>
<title>ブロック崩し</title>
<style>
#game {
width: 350px;
height: 450px;
border: 1px solid black;
position: relative;
overflow: hidden;
margin: 0 auto; /* 追加 */
}
#ball {   width: 10px;   height: 10px;   background-color: red;   border-radius: 50%;   position: absolute; }  .block {   width: 45px;   height: 20px;   position: absolute; }  #paddle {   width: 60px;   height: 10px;   background-color: red;   position: absolute;   left: 145px;   bottom: 10px; }
  </style>
</head>
<body>
<div id="game">
<div id="ball"></div>
<div id="paddle"></div>
</div>
<button id="start-btn">Game Start</button>
  <script>
const game = document.getElementById('game');
const ball = document.getElementById('ball');
const paddle = document.getElementById('paddle');
const startBtn = document.getElementById('start-btn');
const colors = ['red', 'orange', 'yellow', 'green', 'blue', 'indigo', 'violet'];
let ballX = 170; let ballY = 420; let ballSpeedX = 0; let ballSpeedY = 0; let paddleX = 145; let blocks = [];  function createBlocks() {   for (let row = 0; row < 7; row++) {     for (let col = 0; col < 7; col++) {       const block = document.createElement('div');       block.classList.add('block');       block.style.left = (col * 50) + (175 - (7 * 50 / 2)) + 'px'; /* 変更 */       block.style.top = row * 25 + 25 + 'px';       block.style.backgroundColor = colors[row];       game.appendChild(block);       blocks.push(block);     }   } }  createBlocks();  // 以下は変更なし function moveBall() {   ballX += ballSpeedX;   ballY += ballSpeedY;    if (ballX < 0 || ballX > 340) {     ballSpeedX = -ballSpeedX;   }    if (ballY < 0) {     ballSpeedY = -ballSpeedY;   }    if (ballY > 440) {     resetBall();   }    const paddleLeft = paddleX;   const paddleRight = paddleX + 60;    if (ballY + 10 >= 440 && ballX >= paddleLeft && ballX <= paddleRight) {     ballSpeedY = -ballSpeedY;   }    for (let i = 0; i < blocks.length; i++) {     const block = blocks[i];     const blockLeft = block.offsetLeft;     const blockRight = blockLeft + block.offsetWidth;     const blockTop = block.offsetTop;     const blockBottom = blockTop + block.offsetHeight;      if (       ballX >= blockLeft &&       ballX <= blockRight &&       ballY >= blockTop &&       ballY <= blockBottom     ) {       ballSpeedY = -ballSpeedY;       game.removeChild(block);       blocks.splice(i, 1);       i--;     }   }    ball.style.left = ballX + 'px';   ball.style.top = ballY + 'px';    requestAnimationFrame(moveBall); }  function resetBall() {   ballX = 170;   ballY = 420;   ballSpeedX = 0;   ballSpeedY = 0; }  function startGame() {   ballSpeedX = 2;   ballSpeedY = -2;   moveBall(); }  startBtn.addEventListener('click', startGame);  document.addEventListener('keydown', (e) => {   if (e.key === 'ArrowLeft' && paddleX > 0) {     paddleX -= 20;   } else if (e.key === 'ArrowRight' && paddleX < 290) {     paddleX += 20;   }   paddle.style.left = paddleX + 'px'; });
  </script>
</body>
</html>
---//ここまで//---------------

特別むずかしいことは何もしていなくて、Claudeと相談しながら作成しました。

Claude:
https://claude.ai/chats

ブロック崩しを以下の作成条件に従って作成してください。
作成条件:
- 7色の壁を画面上部に設置してください。
- 赤色の玉が当たると壁が消えるようにしてください。
- 画面下に赤色の玉を跳ね返すバーを設置してください。

こんな感じです。適当にプロンプトを打ち込んで生成結果をみながら微調整を5回繰り返したら、上記のコードの完成です。

もちろん、BGMはないし、7色の壁が左に少しズレてるし、スタートボタンがショボいし・・・といった点が気にはなるんですが、5分~10分で完成したんですよ。プロンプトを打ち込んで待ってるだけで、ダダダーっとコードを書き出してくれます。ほんと今のAIはすごいですね。

普段は発想法関係のプロンプトばかり制作してるんですが、よかったら見ていってください。

アイデア系プロンプト概論
https://note.com/steponai/n/nf8d14c6721f0?magazine_key=m9c1c0b8f765e

ではまた!!

文: Stepon(ステポン)

この記事が気に入ったらサポートをしてみませんか?