Come creare gioco Snake con ChatGPT

In questa guida, vi mostrerò come creare un gioco classico chiamato Snake. Snake è un gioco che era presente nei telefoni Nokia degli anni ’90 e 2000, in cui si utilizzavano i numeri del tastierino numerico per direzionarsi che controllava un serpente che mangiava e si allunga man mano che mangia. In questa guida, vedremo come personalizzarlo utilizzando Chatgpt. Ovviamente in questa tecnica sul pc Windows useremo le frecce direzionali.

Cos’è ChatGPT?

ChatGPT è un tipo di intelligenza artificiale che può conversare con le persone. È come una sorta di “robot parlante” che legge e scrive testi in modo naturale. Può rispondere a domande, aiutare con compiti, raccontare storie o semplicemente chiacchierare. È stato addestrato su tantissimi testi presi da internet, quindi sa un po’ di tutto e può parlare di tanti argomenti diversi.

Come creare script snake:

Per creare lo script in snake ho detto alla chat questa frase:

<<Creami gioco snake con python con il serpente di colore rosso e il cibo che mangia di colore giallo>>

import pygame
import time
import random

# Inizializza Pygame
pygame.init()

# Definisce i colori
rosso = (255, 0, 0)
giallo = (255, 255, 0)
nero = (0, 0, 0)
bianco = (255, 255, 255)

# Definisce le dimensioni della finestra di gioco
larghezza_finestra = 800
altezza_finestra = 600

# Crea la finestra di gioco
finestra_gioco = pygame.display.set_mode((larghezza_finestra, altezza_finestra))
pygame.display.set_caption('Snake Game')

# Definisce la velocità del serpente e le dimensioni del blocco
velocita_serpente = 15
dimensione_blocco = 20

# Clock per controllare la velocità del gioco
orologio = pygame.time.Clock()

# Font per il testo di fine gioco
font_stile = pygame.font.SysFont(None, 50)

def messaggio(msg, colore):
    messaggio = font_stile.render(msg, True, colore)
    finestra_gioco.blit(messaggio, [larghezza_finestra / 6, altezza_finestra / 3])

def nostro_serpente(dimensione_blocco, lista_serpente):
    for x in lista_serpente:
        pygame.draw.rect(finestra_gioco, rosso, [x[0], x[1], dimensione_blocco, dimensione_blocco])

def gameLoop():
    game_over = False
    game_close = False

    x1 = larghezza_finestra / 2
    y1 = altezza_finestra / 2

    x1_cambiamento = 0
    y1_cambiamento = 0

    lista_serpente = []
    lunghezza_serpente = 1

    cibo_x = round(random.randrange(0, larghezza_finestra - dimensione_blocco) / 20.0) * 20.0
    cibo_y = round(random.randrange(0, altezza_finestra - dimensione_blocco) / 20.0) * 20.0

    while not game_over:

        while game_close:
            finestra_gioco.fill(nero)
            messaggio("Hai perso! Premi Q per uscire o C per continuare", bianco)
            pygame.display.update()

            for event in pygame.event.get():
                if event.type == pygame.KEYDOWN:
                    if event.key == pygame.K_q:
                        game_over = True
                        game_close = False
                    if event.key == pygame.K_c:
                        gameLoop()

        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                game_over = True
            if event.type == pygame.KEYDOWN:
                if event.key == pygame.K_LEFT:
                    x1_cambiamento = -dimensione_blocco
                    y1_cambiamento = 0
                elif event.key == pygame.K_RIGHT:
                    x1_cambiamento = dimensione_blocco
                    y1_cambiamento = 0
                elif event.key == pygame.K_UP:
                    y1_cambiamento = -dimensione_blocco
                    x1_cambiamento = 0
                elif event.key == pygame.K_DOWN:
                    y1_cambiamento = dimensione_blocco
                    x1_cambiamento = 0

        if x1 >= larghezza_finestra or x1 < 0 or y1 >= altezza_finestra or y1 < 0:
            game_close = True
        x1 += x1_cambiamento
        y1 += y1_cambiamento
        finestra_gioco.fill(nero)
        pygame.draw.rect(finestra_gioco, giallo, [cibo_x, cibo_y, dimensione_blocco, dimensione_blocco])
        testa_serpente = []
        testa_serpente.append(x1)
        testa_serpente.append(y1)
        lista_serpente.append(testa_serpente)
        if len(lista_serpente) > lunghezza_serpente:
            del lista_serpente[0]

        for x in lista_serpente[:-1]:
            if x == testa_serpente:
                game_close = True

        nostro_serpente(dimensione_blocco, lista_serpente)

        pygame.display.update()

        if x1 == cibo_x and y1 == cibo_y:
            cibo_x = round(random.randrange(0, larghezza_finestra - dimensione_blocco) / 20.0) * 20.0
            cibo_y = round(random.randrange(0, altezza_finestra - dimensione_blocco) / 20.0) * 20.0
            lunghezza_serpente += 1

        orologio.tick(velocita_serpente)

    pygame.quit()
    quit()

gameLoop()

Come eseguire Snake:

Installazione di Python:

  • Vai su python.org e scarica l’ultima versione di Python per il tuo sistema operativo.
  • Segui le istruzioni di installazione. Assicurati di selezionare l’opzione per aggiungere Python al PATH durante l’installazione.

Installazione di Pygame:

  • Apri il terminale (macOS/Linux) o il prompt dei comandi (Windows).
  • Digita:
pip install pygame

Copia il codice fornito in un file con estensione .py, ad esempio snake_game.py.

Esegui il file Python che contiene il codice del gioco. Nel terminale o nel prompt dei comandi, naviga nella directory dove hai salvato snake_game.py e digita:

python snake_game.py

Quando ti scontri contro il famoso muro trasparente viene fuori il seguente messaggio:

<<Hai perso! Premi Q per uscire o C per continuare>>

Ulteriori informazioni:

Creare il gioco Snake con Python e Pygame è un modo divertente per iniziare a fare giochi. Con l’aiuto di ChatGPT, abbiamo aggiunto un tocco personale al gioco. Puoi personalizzare il tuo Snake in molti modi diversi per renderlo unico. Spero che questa guida ti abbia aiutato a imparare e a iniziare a creare il tuo gioco. Anche se incontri delle difficoltà, continua a esplorare e divertiti nel processo di creazione.

Lascia un commento