Kolonie
Jap, ich hab mal wieder ein Spiel programmiert.
Es soll eher mal an das Spiel Kolonie für den ZX81 1Kb erinnern. Ich habe es in der Grundphase Programmiert und erweitert. Die Funktionen sind in Kommentaren im Programm erklärt.
/*
Kolonie
-- ein Spiel von Software-Emitting
Anleitung:
Sie sind Vorsitzender der Kolonie: Mars-Mission
Sie werden dort 20 Jahre lang Leben
Sie haben folgende Optionen:
-- Nahrung: Sie müssen genügend Nahrung kaufen
-- Land: Wenn sie Land kaufen wollen
-- Arbeiter: Wenn sie Arbeiter kaufen wollen
-- Sauerstoff: Wenn sie O2 brauchen
Wenn diese Optionen nicht richtig erfüllt werden,
dann stirbt ein Teil der Bevölkerung
Dieses Spiel verdeutlicht die Schwierigkeit
eine Kolonie am Leben zu erhalten
*/
#include <iostream>
using namespace std;
/* Definitionen */
int personen = 500;
int cash = 1000;
int arbeiter = 0;
int land = 1;
int sauerstoff = 1000;
int nahrung;
int l;
int a;
int s;
int jahr;
void Zuende() {
cout << "***Ende*** " << endl;
cout << "Amtszeit zuende!" << endl;
cout << "Geld:" << cash << endl;
system("PAUSE");
}
void lose() {
cout << "***Ende***" << endl;
cout << "Du hast verloren. " << endl;
system("PAUSE");
system("EXIT");
}
int main()
{
system("COLOR 0f");
cout << "***Kolonie***" << endl;
cout << endl;
cout << "(C)Software-Emitting" << endl;
for(jahr=0;jahr < 11;jahr++) {
cout << endl;
cout << "Jahr:" << jahr << endl;
cout << "Personen:" << personen << endl;
cout << "Geld:" << cash << endl;
cout << "Land:" << land << endl;
cout << "Sauerstoff:" << sauerstoff << endl;
cout << endl;
essen:
cout << "Wieviel Nahrung:";
cin >> nahrung;
if(cash < nahrung * 2) { goto essen; }
lan:
cout << "Wieviel Land:";
cin >> l;
if(cash < l * 10) { goto lan; }
land = land + l;
arbeit:
cout << "Wieviel Arbeiter:";
cin >> a;
if(cash < a * 20) { goto arbeit; }
personen = personen + a;
sauerst:
cout << "Wieviel Sauerstoff:";
cin >> s;
if(cash < s) { goto sauerst; }
sauerstoff = sauerstoff + s;
/* Berechnungen */
if(cash == 0) { lose(); }
if(nahrung == 0) { personen = personen - (cash / 10); }
if(nahrung < personen) { personen = personen - (nahrung / 5); }
if(nahrung >= personen) { personen = personen + (nahrung / 10); }
if(sauerstoff < personen) { personen = personen - (sauerstoff / 10); }
if(personen <= 0) { lose(); }
if(cash <= 0) { lose(); }
sauerstoff = sauerstoff - (personen / 10);
if(sauerstoff <= 0) { lose(); }
cash = cash + (personen / 10);
}
Zuende();
return 0;
}