Arduino Facile

C++ #16 Realizzazione di un gioco di combattimento con i Pokemon

Obiettivo: Realizzare un programma che implementi un gioco di combattimento tra Pokemon utilizzando il linguaggio di programmazione C++.

I Pokemon

Vengono in seguito riportate una serie di Carte Pokemon dalle quali si può prendere spunto per la realizzazione del gioco. Ogni carta è caratterizzata da una serie di attributi che saranno definiti nel codice attraverso la struttura pokemon. Questi attributi sono: nome, tipo, puntiVita, nomeAttacco, danniAttacco, debolezza.

Il codice

Viene in seguito illustrato il codice utilizzato per implementare un gioco di combattimento tra Pokemon.
Il programma simula un gioco di combattimento tra due allenatori di Pokémon, ognuno con un mazzo di 3 Pokémon. Ogni Pokémon ha un nome, un tipo, dei punti vita, un attacco e una debolezza. Il codice gestisce la creazione di mazzi di Pokémon, l’inizializzazione delle proprietà di ogni Pokémon, e la simulazione di combattimenti tra i Pokémon di due allenatori.

Struttura del codice

  1. Inclusioni e dichiarazioni globali:
    • La struttura pokemon definisce un Pokémon con:
      nome: nome del Pokémon (es. Pikachu, Charmander).
      tipo: tipo del Pokémon (es. “fuoco”, “acqua”).
      puntiVita: salute del Pokémon.
      nomeAttacco: nome dell’attacco del Pokémon.
      danniAttacco: danno dell’attacco.
      debolezza: tipo di attacco che danneggia maggiormente il Pokémon.
  2. Variabili globali:
    • Vengono dichiarati sei oggetti di tipo pokemon (uno per ogni Pokémon di gioco: Pikachu, Charmander, Pidgey, Squirtle, Vulpix, Bulbasaur).
    • Vengono dichiarate delle costanti di tipo stringa per rappresentare i tipi di Pokémon: elettro, fuoco, acqua, ghiaccio, lotta.
  3. Funzioni:
    • inizializzaPikachu(pokemon &p): inizializza un oggetto di tipo pokemon con i valori specifici di Pikachu.
    • inizializzaCharmander(pokemon &p): inizializza un oggetto di tipo pokemon con i valori specifici di Charmander.
    • intro(): stampa un messaggio di benvenuto. La funzione è vuota e non implementata.
    • creazioneMazzi(pokemon mazzo1[], pokemon mazzo2[], int numPokemon): crea due mazzi con i Pokémon specificati. Ogni mazzo contiene 3 Pokémon.
    • combattimento(pokemon &p1, pokemon &p2): gestisce un combattimento tra due Pokémon. La funzione non è ancora implementata in modo completo, ma stampa un messaggio indicando i Pokémon che stanno combattendo. La funzione dovrebbe restituire 1 se il primo Pokémon vince e 2 se il secondo Pokémon vince.
    • combattimentoMazzi(pokemon mazzo1[], pokemon mazzo2[], int numPokemon): simula un combattimento tra i mazzi dei due allenatori. Chiama la funzione combattimento per ciascun Pokémon dei due mazzi. La funzione dovrebbe restituire 1 se il giocatore 1 vince più sfide e 2 se il giocatore 2 vince più sfide.
  4. Funzione main():
    • Definisce i nomi degli allenatori e il numero di Pokémon in ciascun mazzo (3 per ciascun giocatore).
    • Viene inizializzato Pikachu e Charmander tramite le funzioni inizializzaPikachu e inizializzaCharmander.
    • La funzione intro() stampa un messaggio di benvenuto (anche se non implementata).
    • I mazzi dei due giocatori vengono creati dalla funzione creazioneMazzi.
    • Viene avviato un ciclo per eseguire un numero definito di sfide (3 in questo caso). Ad ogni sfida, si simula un combattimento tra i Pokémon nei mazzi.

Modifiche:

Al fine di rendere il gioco più avvincente è possibile introdurre una serie di modifiche:

PAGINA IN PDF