Il programma sala
da gioco, simula un'area di gioco in attesa di giocatori, solitamente
per un gioco in rete. Il programma non coinvolge alcuna funzione in
linea del computer. Ma crea una singola linea di testo per la quale
il giocatore deve aspettare. L'utente del programma esegue una
simulazione ed ha quattro scelte. Può aggiungere un giocatore alla
sala da gioco, rimuovere una persona dalla sala (la prima ad entrare
è al prima ad uscire), azzerare la sala, o uscire dalla sala da
gioco.
La classe Giocatore
La prima cosa da
fare quando si crea la classe Giocatore e rappresentare i giocatori
che aspettano nella sala da gioco. Poiché non sappiamo quanti
giocatori deve avere la sala ogni volta, ha senso usare una struttura
dinamica. Solitamente, i contenitori utilizzati sono quelli delle
librerie standard, ma in questo caso viene definito un contenitore
dinamico che possa allocare la memoria ed essere gestito dal
programma. Un' ottima via per vedere la memoria dinamica in azione.
//Sala
da Gioco
//Simula
una sala nella quale il giocatore può attendere
#include<iostream>
#include<string>
using
namespace std;
class
Giocatore
{
public:
Giocatore(const
string& nome=” ”): m_Nome(nome), m_pPros(0){}
string
DaiNome() const { return m_Nome;}
Giocatore*
DaiPros() const { return m_pPros;}
void
MettiPros(Giocatore* prossimo){m_pPros = prossimo;}
private:
string
m_Nome;
Giocatore*
m_pPros; //puntatore al giocatore successivo
};
Il membro dati
m_Nome tiene il nome del giocatore. Questo è molto comprensibile, ma
ci si può chiedere quale tipo di dato contenga m_pPros.
E' un puntatore all'oggetto Giocatore,
il quale indica che ogni oggetto Giocatore può contenere il nome e
puntare ad un altro oggetto Giocatore.
Questo è molto comprensibile durante lo sviluppo dell'oggetto
SalaDaGioco. La classe
ha due metodi accessori per m_Nome come due funzioni accessorie dai
e metti per m_pPros.
Il costruttore della classe è molto semplice, inizializza una
stringa m_Nome
basandosi sull'argomento passato ed imposta m_pPros
con un puntatore nullo.
Nessun commento:
Posta un commento