Il blog per tutti gli smanettoni del pc

Realizziamo il mitico Snake in C++ – Parte 1

apr 16

Introduzione

Snake è un famoso giochino che ha come protagonista un serpente . Quando il serpente mangia, il suo corpo si allunga rendendo il gioco sempre piu’ complicato.

In questa prima parte spiegherò la pseudocodifica del codice che andreamo a relizzare dal prossimo articolo.

Le liste

Il corpo del serpente possiamo tradurlo in linguaggio informatico come una lista . La lista per chi non la conoscesse è una struttura dati dinamica o meglio una serie di elementi dove ogni elemento è legato a quello successivo . Per un approfondimento vi rimando a wikipedia .

Ecco come si presenta graficamente una lista :

Pensiamo il nodo come la parte che costituisce il corpo del serpente . Ogni nodo deve avere una caratteristica : la posizione occupata nello schermo.

Rifacciamo il disegno della lista seguendo la logica descritta sopra:

La lista disegnata rappresenta un serpente che inizia nella cella X:5 Y:2 e finisce in X:7 Y:2 .

Per comodita è consigliabile usare una lista concatenata : una particolare lista dove ogni elemento non solo è collegato all’elemento successivo ma anche a quello precendente .

Trasformiamo per l’ultima volta la nostra bozza :

Movimento del serpente

Supponiamo di avere questo serpente :

Tradotto in una lista sarebbe:

Il serpente deve potersi muovere nelle quattro direzioni : a sinistra , in alto , a destra e in basso.

Supponiamo di volerlo muovere a destra

Bisogna trovare un algortimo , una sequenza di istruzioni , per generare la seguente lista

Se sovrapponessimo le due liste noteremmo che nella lista generata ( quella dopo il movimento ) c’è un nuovo nodo che rappresenta l’ head e che l’ultimo nodo viene cancellato.

Il procedimento è identico per tutte le 4 le direzioni: eliminare l’ultimo nodo e inserire una nuova testa (head) con le nuove cordinate dove inizia il serpente.

Come avete visto il ragionamento logico che sta dietro all’algoritmo è molto semplice . Nella prossima lezione concluderemo questo appuntamento scrivendo il codice ;)

2 Commenti a “Realizziamo il mitico Snake in C++ – Parte 1”

  1. crybot
    20:59 on maggio 7th, 2011

    ciao, a quando la seconda parte?

  2. atuocomplete
    10:51 on agosto 23rd, 2011

    Davvero ottimo! complimenti!

Lascia un Commento