Untitled

mail@pastecode.io avatar
unknown
c_cpp
3 years ago
1.8 kB
2
Indexable
Never
#include "EsercizioGiocoDueBottiglie1.cpp"

class Gioco {
public:
	Gioco(int x, int y) {
		//Inizializzo le istanze ma devono per forza avere valori diversi tra di loro e rientrare comunque nel range 
		bottiglia1.inizializza(x);
		if (x != y)
			bottiglia2.inizializza(y);
		else
			do {
				cout << "Inserisci valore corretto = ";
				cin >> y;
				bottiglia2.inizializza(y);
			} while (y == x && y != 3 || y != 5);
	}
	//Ovviamente le istanze private, devo ricreare un metodo per ogni istanza e richiamare quelli della classe principale
	void svuotaBottiglia1() {
		bottiglia1.svuotaBottiglia();
	}
	void svuotaBottiglia2() {
		bottiglia2.svuotaBottiglia();
	}
	void riempiBottiglia1() {
		bottiglia1.riempiBottiglia();
	}
	void riempiBottiglia2() {
		bottiglia2.riempiBottiglia();
	}
	int getStatoBottiglia1() {
		return bottiglia1.getStato();
	}
	int getStatoBottiglia2() {
		return bottiglia2.getStato();
	}
	void versa2In1() {
		bottiglia2.travasa(bottiglia2, bottiglia1);
	}
	void versa1In2() {
		bottiglia2.travasa(bottiglia1, bottiglia2);
	}
	int getBottiglia1CapacitaMax() {
		return bottiglia1.getCapacitaMax();
	}
	int getBottiglia2CapacitaMax() {
		return bottiglia2.getCapacitaMax();
	}
	int getBottiglia1Stato() {
		return bottiglia1.getStato();
	}
	int getBottiglia2Stato() {
		return bottiglia2.getStato();
	}
private:
	//Istanze private per evitare che vengano modificate 
	Bottiglia bottiglia1;
	Bottiglia bottiglia2;
};

inline ostream& operator << (ostream& out, Gioco& istanza) {
	out << "Bottiglia 1 capacita max = " << istanza.getBottiglia1CapacitaMax() << " stato = " << istanza.getBottiglia1Stato() << endl;
	out << "Bottiglia 2 capacita max = " << istanza.getBottiglia2CapacitaMax() << " stato = " << istanza.getBottiglia2Stato() << endl;
	return out;
}