Discussion

Créez Tetris avec GPT-4 en utilisant p5.js

De Wikiprompt, l’encyclopédie libre de prompts

Kris Kashtanova

12 mai 2023

Créez Tetris avec GPT-4 en utilisant p5.js Un guide étape par étape pour créer un jeu Tetris avec GPT-4, incluant des invites pour la génération initiale du code et des améliorations itératives comme l'effacement de lignes et le mouvement.

Médias associés

Contenu du PromptEnregistrer

🌐
Voici le code p5.js pour Tetris avec des couleurs arc-en-ciel et le contrôle par flèches : ```javascript let board = []; let blockSize = 30; let cols = 10; let rows = 20; let currentPiece; let pieces = []; let colors = ['#FF0000', '#FF7F00', '#FFFF00', '#00FF00', '#0000FF', '#4B0082', '#8B00FF']; let fallInterval = 500; let lastFall = 0; let score = 0; function setup() { createCanvas(cols * blockSize, rows * blockSize); for (let i = 0; i < rows; i++) { board[i] = []; for (let j = 0; j < cols; j++) { board[i][j] = 0; } } 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]] ]; spawnPiece(); } function spawnPiece() { let index = floor(random(pieces.length)); currentPiece = { shape: pieces[index], x: floor(cols / 2) - floor(pieces[index][0].length / 2), y: 0, color: colors[floor(random(colors.length))] }; } function draw() { background(0); drawBoard(); drawPiece(); if (millis() - lastFall > fallInterval) { moveDown(); lastFall = millis(); } fill(255); textSize(20); text('Score: ' + score, 10, 30); } function drawBoard() { for (let i = 0; i < rows; i++) { for (let j = 0; j < cols; j++) { if (board[i][j] !== 0) { fill(board[i][j]); rect(j * blockSize, i * blockSize, blockSize, blockSize); } } } } function drawPiece() { fill(currentPiece.color); for (let i = 0; i < currentPiece.shape.length; i++) { for (let j = 0; j < currentPiece.shape[i].length; j++) { if (currentPiece.shape[i][j] === 1) { rect((currentPiece.x + j) * blockSize, (currentPiece.y + i) * blockSize, blockSize, blockSize); } } } } function moveDown() { if (!collision(currentPiece.shape, currentPiece.x, currentPiece.y + 1)) { currentPiece.y++; } else { lockPiece(); clearLines(); spawnPiece(); } } function lockPiece() { for (let i = 0; i < currentPiece.shape.length; i++) { for (let j = 0; j < currentPiece.shape[i].length; j++) { if (currentPiece.shape[i][j] === 1) { board[currentPiece.y + i][currentPiece.x + j] = currentPiece.color; } } } } function clearLines() { for (let i = rows - 1; i >= 0; i--) { let full = true; for (let j = 0; j < cols; j++) { if (board[i][j] === 0) { full = false; break; } } if (full) { board.splice(i, 1); board.unshift(new Array(cols).fill(0)); score += 100; i++; } } } function collision(shape, x, y) { for (let i = 0; i < shape.length; i++) { for (let j = 0; j < shape[i].length; j++) { if (shape[i][j] === 1) { let newX = x + j; let newY = y + i; if (newX < 0 || newX >= cols || newY >= rows) return true; if (newY >= 0 && board[newY][newX] !== 0) return true; } } } return false; } function keyPressed() { if (keyCode === LEFT_ARROW) { if (!collision(currentPiece.shape, currentPiece.x - 1, currentPiece.y)) { currentPiece.x--; } } else if (keyCode === RIGHT_ARROW) { if (!collision(currentPiece.shape, currentPiece.x + 1, currentPiece.y)) { currentPiece.x++; } } else if (keyCode === DOWN_ARROW) { moveDown(); lastFall = millis(); } else if (keyCode === UP_ARROW) { rotatePiece(); } } function rotatePiece() { let rotated = []; for (let i = 0; i < currentPiece.shape[0].length; i++) { rotated[i] = []; for (let j = 0; j < currentPiece.shape.length; j++) { rotated[i][j] = currentPiece.shape[currentPiece.shape.length - 1 - j][i]; } } if (!collision(rotated, currentPiece.x, currentPiece.y)) { currentPiece.shape = rotated; } } ``` Ce code implémente un Tetris complet avec : - Contrôle par flèches (gauche/droite pour déplacer, bas pour accélérer, haut pour tourner) - Chaque pièce a une couleur aléatoire de l'arc-en-ciel - Les lignes complètes sont détectées et supprimées - Le score augmente à chaque ligne effacée - La chute automatique se produit toutes les 500 ms Copiez ce code dans un éditeur p5.js et exécutez-le.

Connectez-vous pour voir le prompt complet

Continuer avec:

En vous connectant, vous acceptez nos Conditions et Confidentialité

Utilisation

Ce prompt est conçu pour être utilisé avec coding. Copiez le contenu ci-dessus et collez-le dans votre outil d’IA préféré.

Pour de meilleurs résultats, personnalisez les espaces réservés (indiqués par des crochets ou des majuscules) selon vos besoins.

Références

Catégories :coding| twitter| tetris| gpt-4

Discussion