C++ #17 Realizzazione di un gioco di Calcio FC25 Penalty

Obiettivo: Realizzare un programma che implementi un gioco di calcio (nello specifico calci di rigore) utilizzando il linguaggio di programmazione C++.

I Calciatori

Vengono in seguito riportate una serie di Carte di alcuni giocatori dalle quali si può prendere spunto per la realizzazione del gioco. Ogni carta è caratterizzata da una serie di attributi (differenti per portieri e giocatori) che saranno definiti nel codice attraverso le strutture Calciatore e Portiere.
Nello specifico, gli attributi dei portieri sono:

  • string nome;
  • string ruolo;
  • int tuffo;
  • int presa;
  • int rinvio;
  • int riflessi;
  • int reattivita;
  • int piazzamento;

Differentemente, gli attributi dei Calciatori sono:

  • string nome;
  • string ruolo;
  • int velocita;
  • int tiro;
  • int passaggio;
  • int dribbling;
  • int difesa;
  • int fisico;

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 Portiere definisce le caratteristiche dei portieri.
    • La struttura Calciatore definisce le caratteristiche dei calciatori.
    • La struttura Squadra è costituita dal nome della squadra da un portiere e da due giocatori.

  2. Variabili locali:

    • Vengono dichiarati differenti oggetti di tipo Portiere e Calciatore (uno per ogni giocatore: Courtois, Martinez, Donnarumma, Messi, DiMaria, Barella, Immobile.

  3. Funzioni:

    • inizializzaMessi(Calciatore &c): inizializza un oggetto di tipo calciatore con i valori specifici di Messi.
    • inizializzaDonnarumma(Portiere &p): inizializza un oggetto di tipo calciatore con i valori specifici di Donnarumma.
    • intro(): stampa un messaggio di benvenuto.

    • rigore(Calciatore calciatore, Portiere portiere, int indice)): Simula un calcio di rigore. La funzione dovrebbe restituire 1 se il calciatore segna e 0 se il portiere para.
    • sfida(Squadra team1, Squadra team2, int numRigori): simula una partita ai calci di rigore Questa funzione, richiama la funzione rigore per ciascun rigore tirato.

  4. Funzione main():

    • Definisce le squadre.
    • Vengono inizializzati i calciatori ed i portieri.
    • La funzione intro() stampa un messaggio di benvenuto.

    • Viene eseguita la funzione sfida.





Modifiche:

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

  • Elementi di Randomicità nel calcio di rigore
    – Ogni tiro dovrebbe essere caratterizzato da un elemento di randomicità.