Discusión

Construye Tetris con GPT-4 usando p5.js

De Wikiprompt, la enciclopedia libre de prompts

Kris Kashtanova
Contribuido porKris KashtanovaXFuente

12 may 2023

Construye Tetris con GPT-4 usando p5.js Una guía paso a paso para crear un juego de Tetris con GPT-4, incluyendo indicaciones para la generación inicial de código y mejoras iterativas como la limpieza de líneas y el movimiento.

Medios relacionados

Contenido del PromptGuardar

🌐
let board = []; const COLS = 10; const ROWS = 20; const BLOCK_SIZE = 30; let currentPiece; let pieces = [ [[1,1,1,1]], [[1,1],[1,1]], [[0,1,0],[1,1,1]], [[1,0,0],[1,1,1]], [[0,0,1],[1,1,1]], [[1,1,0],[0,1,1]], [[0,1,1],[1,1,0]] ]; let colors = [ [255,0,0], [255,127,0], [255,255,0], [0,255,0], [0,255,255], [0,0,255], [148,0,211] ]; let currentColor; let currentX = 3; let currentY = 0; let dropCounter = 0; let dropInterval = 500; let lastTime = 0; function setup() { createCanvas(COLS * BLOCK_SIZE, ROWS * BLOCK_SIZE); for (let i = 0; i < ROWS; i++) { board[i] = []; for (let j = 0; j < COLS; j++) { board[i][j] = null; } } spawnPiece(); } function draw() { background(0); let deltaTime = millis() - lastTime; lastTime = millis(); dropCounter += deltaTime; if (dropCounter > dropInterval) { moveDown(); dropCounter = 0; } drawBoard(); drawPiece(); } function spawnPiece() { let index = floor(random(pieces.length)); currentPiece = pieces[index]; currentColor = colors[index]; currentX = 3; currentY = 0; } function drawBoard() { for (let i = 0; i < ROWS; i++) { for (let j = 0; j < COLS; j++) { if (board[i][j]) { fill(board[i][j][0], board[i][j][1], board[i][j][2]); rect(j * BLOCK_SIZE, i * BLOCK_SIZE, BLOCK_SIZE, BLOCK_SIZE); } } } } function drawPiece() { fill(currentColor[0], currentColor[1], currentColor[2]); for (let i = 0; i < currentPiece.length; i++) { for (let j = 0; j < currentPiece[i].length; j++) { if (currentPiece[i][j]) { rect((currentX + j) * BLOCK_SIZE, (currentY + i) * BLOCK_SIZE, BLOCK_SIZE, BLOCK_SIZE); } } } } function moveDown() { if (!collision(currentPiece, currentX, currentY + 1)) { currentY++; } else { lockPiece(); clearLines(); spawnPiece(); } } function collision(piece, x, y) { for (let i = 0; i < piece.length; i++) { for (let j = 0; j < piece[i].length; j++) { if (piece[i][j]) { let newX = x + j; let newY = y + i; if (newX < 0 || newX >= COLS || newY >= ROWS) return true; if (newY >= 0 && board[newY][newX]) return true; } } } return false; } function lockPiece() { for (let i = 0; i < currentPiece.length; i++) { for (let j = 0; j < currentPiece[i].length; j++) { if (currentPiece[i][j]) { let y = currentY + i; let x = currentX + j; if (y >= 0) { board[y][x] = currentColor; } } } } } function clearLines() { for (let i = ROWS - 1; i >= 0; i--) { let full = true; for (let j = 0; j < COLS; j++) { if (!board[i][j]) { full = false; break; } } if (full) { board.splice(i, 1); board.unshift([]); for (let j = 0; j < COLS; j++) { board[0][j] = null; } i++; } } } function keyPressed() { if (keyCode === LEFT_ARROW) { if (!collision(currentPiece, currentX - 1, currentY)) { currentX--; } } else if (keyCode === RIGHT_ARROW) { if (!collision(currentPiece, currentX + 1, currentY)) { currentX++; } } else if (keyCode === DOWN_ARROW) { if (!collision(currentPiece, currentX, currentY + 1)) { currentY++; dropCounter = 0; } } else if (keyCode === UP_ARROW) { let rotated = rotatePiece(currentPiece); if (!collision(rotated, currentX, currentY)) { currentPiece = rotated; } } } function rotatePiece(piece) { let rows = piece.length; let cols = piece[0].length; let newPiece = []; for (let i = 0; i < cols; i++) { newPiece[i] = []; for (let j = 0; j < rows; j++) { newPiece[i][j] = piece[rows - 1 - j][i]; } } return newPiece; }

Iniciá sesión para ver el prompt completo

Continuar con:

Al iniciar sesión, aceptás nuestros Términos de uso y Política de privacidad

Uso

Este prompt está diseñado para usarse con coding. Copiá el contenido de arriba y pegalo en tu herramienta de IA preferida.

Para mejores resultados, personalizá los marcadores (indicados con corchetes o mayúsculas) con tus requisitos específicos.

Referencias

Categorías:coding| twitter| tetris| gpt-4

Discusión