HTMLコード:
JavaScriptコードについての説明:
この1pxブロック崩しは、HTML5のCanvasを使用しています。ゲーム画面は、ブラウザのウィンドウサイズに動的に合わせられます。
`ballX`、`ballY`、`ballSpeedX`、`ballSpeedY`は、それぞれボールの位置と速度を意味します。`ballSize`には、ボールの半径を設定します。
`blockWidth`と`blockHeight`は、それぞれブロックの幅と高さを表します。`numCols`と`numRows`には、ブロックの列数と行数を設定します。
`blocks`は、二次元配列のブロックを保持します。各ブロックには、その位置情報と生死状態を示す`x`、`y`、`alive`プロパティがあります。
`drawBall()`関数は、白いボールを描画します。
`drawBlocks()`関数は、虹色のグラデーションがかかったブロックを描画します。`blocks`配列をループし、`alive`が`true`の場合にのみ、ブロックを描画します。
`collisionDetection()`関数は、ボールがブロックに当たったかどうかを判定します。`blocks`配列をループし、ボールがブロックに当たる場合は、ブロックを`alive`から`false`に変更し、ボールの`ballSpeedY`を反転させます。
`moveBall()`関数は、ボールを移動します。ボールがウィンドウの外に出る場合は、対応する速度を反転させます。
`draw()`関数は、ループを実行し、ゲーム画面を描画します。ループは、`requestAnimationFrame()`メソッドで呼び出されます。
最後に、`draw()`関数の呼び出しで、ゲームの実行が開始されます。