include - Wklej.se

Transkrypt

include - Wklej.se
ubia
#include <iostream>
#include <windows.h>
#include <conio.h>
#include <cstdlib>
#include <fstream>
#include <string>
#include <cstring>
using namespace std;
int animacja (string t)
{
HANDLE hOut;
hOut=GetStdHandle( STD_OUTPUT_HANDLE );
for (int i=0 ; i < t.length(); i++)
{
SetConsoleTextAttribute( hOut, FOREGROUND_BLUE | FOREGROUND_INTENSITY);
cout<<t[i];
Sleep(28);
}
}
string tekst[50];
int decyzja;
int wydobycie [3];
int decyzja2;
int decyzja3;
int decyzja4;
int decyzja5;
fstream plik;
string linia;
int nr_linii=1;
string teks;
string liczba;
int straty_ludzie [3];
int main()
{
HANDLE hOut;
hOut=GetStdHandle( STD_OUTPUT_HANDLE );
while(true)
{
nowa:
system("cls");
tekst[0]="MIASTO Version 0.6";
animacja(tekst[0]);
cout<<endl;
tekst[1]="====================";
animacja(tekst[1]);
cout<<endl;
tekst[2]= "1. Nowa gra";
animacja(tekst[2]);
cout<<endl;
tekst[3]="====================";
animacja(tekst[3]);
cout<<endl;
tekst[4]="2. Wczytaj";
animacja(tekst[4]);
cout<<endl;
tekst[5]="====================";
animacja(tekst[5]);
cout<<endl;
tekst[6]="3. Wyjscie";
animacja(tekst[6]);
cout<<endl;
tekst[7]="====================";
animacja(tekst[7]);
cout<<endl;
while (!(cin>>decyzja))
{
cin.clear();
cin.sync();
tekst[19]="Tu tylko liczby! Wpisz dowolna liczbe i zatwierdz enterem by udowodnic ze zrozumiales i wybierz opcje z menu! :)";
animacja(tekst[19]);
cout<<endl;
cin>>decyzja;
}
system("cls");
switch (decyzja)
{
case 1:
{
int gold=200;
int drewno=20;
int kamien=10;
int populacja=1;
int poziom1=1;
int poziom2=1;
int poziom3=1;
int runda=0;
int domy=1;
int koszt1=20;
int koszt2=200;
int koszt3=100;
int koszt4=30;
int koszt5=100;
while (teks!="restart")
{
runda++;
wydobycie[0]=(populacja*7.5)*poziom1;
wydobycie[1]=(populacja/2)*poziom2;
wydobycie[2]=(populacja/2)*poziom3;
straty_ludzie [0]=domy;
straty_ludzie [1]=domy*2;
straty_ludzie [2]=domy*3;
SetConsoleTextAttribute(hOut, FOREGROUND_RED | FOREGROUND_INTENSITY);
cout<<"Twoj cel to poziom 15 kazdego z budynkow"<<endl;
SetConsoleTextAttribute(hOut, FOREGROUND_BLUE| FOREGROUND_INTENSITY);
cout<<"===================="<<endl;
SetConsoleTextAttribute(hOut, FOREGROUND_GREEN | FOREGROUND_INTENSITY);
cout<<"RUNDA: "<<runda<<endl;
SetConsoleTextAttribute(hOut, FOREGROUND_BLUE | FOREGROUND_INTENSITY);
cout<<"===================="<<endl;
SetConsoleTextAttribute(hOut, FOREGROUND_GREEN | FOREGROUND_INTENSITY);
cout<<"Gold: "<<gold<<endl;
cout<<"Populacja: "<<populacja<<endl;
cout<<"Domy: "<<domy<<endl;
cout<<"Drewno: "<<drewno<<endl;
cout<<"Kamien: "<<kamien<<endl;
SetConsoleTextAttribute(hOut, FOREGROUND_BLUE | FOREGROUND_INTENSITY);
cout<<"===================="<<endl;
SetConsoleTextAttribute(hOut, FOREGROUND_GREEN | FOREGROUND_INTENSITY);
cout<<"Wybierz dzialanie: "<<endl;
cout<<"1. Wydobadz zloto z kopalni. Obecny zysk: "<<wydobycie[0]<<" Straty w ludziach: (- "<<straty_ludzie[0]<<")"<<endl;
cout<<"2. Zwieksz liczbe ludnosci. Koszt: "<<koszt5<<endl;
cout<<"3. Zbuduj dom. Koszt: "<<koszt4<<endl;
cout<<"4. Zdobadz drewno. (+"<<wydobycie[1]<<") Straty w ludziach: (- "<<straty_ludzie[1]<<")"<<endl;
cout<<"5. Wydobadz kamien. (+"<<wydobycie[2]<<") Straty w ludziach: (- "<<straty_ludzie[2]<<")"<<endl;
cout<<"6. Upgrade kopalni. Koszt: "<<koszt1<<" Obecny poziom: "<<poziom1<<endl;
cout<<"7. Upgrade kamienierza. Koszt: "<<koszt3<<" Obecny poziom: "<<poziom3<<endl;
cout<<"8. Upgrade drwala. Koszt: "<<koszt2<<" Obecny poziom: "<<poziom2<<endl;
SetConsoleTextAttribute(hOut, FOREGROUND_BLUE | FOREGROUND_INTENSITY);
cout<<"===================="<<endl;
cout<<"===================="<<endl;
SetConsoleTextAttribute(hOut, FOREGROUND_RED | FOREGROUND_INTENSITY);
cout<<"9. ZAPIS."<<endl;
cout<<"10. WYJSCIE."<<endl;
SetConsoleTextAttribute(hOut, FOREGROUND_BLUE | FOREGROUND_INTENSITY);
cout<<"===================="<<endl;
cout<<"===================="<<endl;
while (!(cin>>decyzja2))
{
cin.clear();
cin.sync();
tekst[9]="Tu tylko liczby. Wprowadz dowolna liczbe i zatwierdz enterem by udowodnic ze zrozumiales i wybierz opcje z menu :)";
animacja(tekst[9]);
cout<<endl;
}
system("cls");
switch(decyzja2)
{
case 1:
{
gold=gold+wydobycie[0];
populacja=populacja-straty_ludzie[0];
}
break;
case 2:
{
if (gold<koszt5)
{
tekst[10]="Nie masz wystarczajacej ilosci golda. Wymagane: ";
animacja(tekst[10]);
cout<<koszt5;
cout<<endl;
Sleep(1000);
}
else
{
populacja=populacja+(2.5*domy)+1;
gold=gold-koszt5;
koszt5=koszt5*1.1;
}
}
break;
case 3:
{
if (gold<koszt4)
{
tekst[35]="Nie masz wystarczajacej liczby golda. Wymagane: ";
animacja(tekst[35]);
cout<<koszt4<<endl;
Sleep(1000);
}
else
{
domy++;
gold=gold-koszt4;
koszt4=koszt4+100;
}
}
break;
case 4:
{
drewno=drewno+wydobycie[1];
populacja=populacja-straty_ludzie[1];
}
break;
case 5:
{
kamien=kamien+wydobycie[2];
populacja=populacja-straty_ludzie[2];
}
break;
case 6:
{
if (gold<koszt1)
{
tekst[11]="Nie masz wystarczajacej ilosci golda. Wymagane: ";
animacja(tekst[11]);
cout<<koszt5;
cout<<endl;
Sleep(1000);
}
else
{
poziom1++;
gold=gold-koszt1;
koszt1=koszt1+1000;
}
}
break;
case 7:
{
if ((kamien<100)||(drewno<200)||(gold<koszt3))
{
tekst[12]="Nie masz wystarczajacej liczby kamienia na ulepszenie. Potrzeba 100 kamienia, 200 drewna i ";
animacja(tekst[12]);
cout<<koszt3<<" golda"<<endl;
Sleep(1000);
}
else
{
poziom3++;
gold=gold-koszt3;
koszt3=koszt3+1000;
kamien=kamien-100;
drewno=drewno-200;
}
}
break;
case 8:
{
if ((kamien<75)||(drewno<120)||(gold<koszt2))
{
tekst[13]="Nie masz wystarczajacej liczby surowcow na ulepszenie. Potrzeba 75 kamienia, 120 drewna i ";
animacja(tekst[13]);
cout<<koszt2<<" golda"<<endl;
Sleep(300);
}
else
{
poziom2++;
gold=gold-koszt2;
koszt2=koszt2+1000;
kamien=kamien-75;
drewno=drewno-120;
}
}
break;
case 9:
{
plik.open("stangry.txt",ios::out);
plik<<gold<<endl;
plik<<drewno<<endl;
plik<<kamien<<endl;
plik<<populacja<<endl;
plik<<poziom1<<endl;
plik<<poziom2<<endl;
plik<<poziom3<<endl;
plik<<runda<<endl;
plik<<domy<<endl;
plik<<koszt1<<endl;
plik<<koszt2<<endl;
plik<<koszt3<<endl;
plik<<koszt4<<endl;
plik<<koszt5<<endl;
plik.close();
tekst[14]="Stan gry zapisany!";
animacja(tekst[14]);
cout<<endl;
Sleep(1000);
}
break;
case 10:
{
tekst[36]="1. Powrot do menu";
animacja(tekst[36]);
cout<<endl;
tekst[37]="2. Wyjscie do pulpitu";
animacja(tekst[37]);
cout<<endl;
while(!(cin>>decyzja5))
{
cin.clear();
cin.sync();
tekst[38]="Tutaj tylko liczby! Wpisz dowolna liczbe i zatwierdz enterem by podwierdzic, ze zrozumiales a nastepnie wybierz opcje z
menu";
animacja(tekst[38]);
cout<<endl;
}
switch (decyzja5)
{
case 1:
goto nowa;
break;
case 2:
exit(0);
break;
default:
exit(0);
break;
}
}
break;
default:
{
tekst[15]="Nie ma takiej opcji w menu";
animacja(tekst[15]);
cout<<endl;
Sleep(1000);
}
break;
}
system("cls");
if ((gold<=0)||(populacja<=0))
{
liczba="cos";
cout<<"=============================================================================="<<endl;
tekst[16]="Twoja liczba ludnosci wyniosla 0....PRZEGRALES!!!";
animacja(tekst[16]);
cout<<endl;
cout<<"=============================================================================="<<endl;
tekst[17]="Uruchom ponownie by podjac kolejna probe";
animacja(tekst[17]);
cout<<endl;
cout<<"=============================================================================="<<endl;
Sleep(3000);
goto nowa;
system("cls");
}
if ((poziom1>=15)&&(poziom2>=15)&&(poziom3>=15))
{
system("cls");
cout<<" "<<endl<<" "<<" "<<endl;
cout<<"=============================================================================="<<endl;
tekst[18]="WYGRALES!!!!";
animacja(tekst[18]);
cout<<endl;
cout<<"=============================================================================="<<endl;
Sleep(3000);
exit(0);
}
}
}
break;
case 2:
{
int gold=200;
int drewno=20;
int kamien=10;
int populacja=1;
int poziom1=1;
int poziom2=1;
int poziom3=1;
int runda=0;
int domy=1;
int koszt1=20;
int koszt2=200;
int koszt3=100;
int koszt4=30;
int koszt5=100;
plik.open("stangry.txt",ios::in);
if(plik.good()==false)
{
tekst[20]="Nie ma tutaj zadnego zapisu.";
animacja(tekst[20]);
cout<<endl;
Sleep(300);
goto nowa;
}
while(getline(plik,linia))
{
switch(nr_linii)
{
case 1:
gold=atoi(linia.c_str());
case 2:
drewno=atoi(linia.c_str());
case 3:
kamien=atoi(linia.c_str());
case 4:
populacja=atoi(linia.c_str());
case 5:
poziom1=atoi(linia.c_str());
case 6:
poziom2=atoi(linia.c_str());
case 7:
poziom3=atoi(linia.c_str());
case 8:
runda=atoi(linia.c_str());
case 9:
domy=atoi(linia.c_str());
case 10:
koszt1=atoi(linia.c_str());
case 11:
koszt2=atoi(linia.c_str());
case 12:
koszt3=atoi(linia.c_str());
case 13:
koszt4=atoi(linia.c_str());
case 14:
koszt5=atoi(linia.c_str());
}
nr_linii++;
}
plik.close();
while(teks!="restart")
{
runda++;
wydobycie[0]=(populacja*7.5)*poziom1;
wydobycie[1]=(populacja/1.5)*poziom2;
wydobycie[2]=(populacja/2)*poziom3;
straty_ludzie [0]=domy;
straty_ludzie [1]=domy*2;
straty_ludzie [2]=domy*3;
SetConsoleTextAttribute(hOut, FOREGROUND_RED | FOREGROUND_INTENSITY);
cout<<"Twoj cel to poziom 15 kazdego z budynkow!"<<endl;
SetConsoleTextAttribute(hOut, FOREGROUND_BLUE| FOREGROUND_INTENSITY);
cout<< "===================="<<endl;
SetConsoleTextAttribute(hOut, FOREGROUND_GREEN | FOREGROUND_INTENSITY);
cout<<"RUNDA: "<<runda<<endl;
SetConsoleTextAttribute(hOut, FOREGROUND_BLUE | FOREGROUND_INTENSITY);
cout<< "===================="<<endl;
SetConsoleTextAttribute(hOut, FOREGROUND_GREEN | FOREGROUND_INTENSITY);
cout<<"Gold: "<<gold<<endl;
cout<<"Populacja: "<<populacja<<endl;
cout<<"Domy: "<<domy<<endl;
cout<<"Drewno: "<<drewno<<endl;
cout<<"Kamien: "<<kamien<<endl;
SetConsoleTextAttribute(hOut, FOREGROUND_BLUE | FOREGROUND_INTENSITY);
cout<< "===================="<<endl;
SetConsoleTextAttribute(hOut, FOREGROUND_GREEN | FOREGROUND_INTENSITY);
cout<<"Wybierz dzialanie: "<<endl;
cout<<"1. Wydobadz zloto z kopalni. Obecny zysk: "<<wydobycie[0]<<"Straty w ludziach: (- "<<straty_ludzie[0]<<")"<<endl;
cout<<"2. Zwieksz liczbe ludnosci. Koszt: "<<koszt5<<endl;
cout<<"3. Zbuduj dom. Koszt: "<<koszt4<<endl;
cout<<"4. Zdobadz drewno. (+"<<wydobycie[1]<<") Straty w ludziach: (- "<<straty_ludzie[1]<<")"<<endl;
cout<<"5. Wydobadz kamien. (+"<<wydobycie[2]<<") Straty w ludziach: (- "<<straty_ludzie[2]<<")"<<endl;
cout<<"6. Upgrade kopalni. Koszt: "<<koszt1<<" Obecny poziom: "<<poziom1<<endl;
cout<<"7. Upgrade kamienierza. Koszt: "<<koszt3<<" Obecny poziom: "<<poziom3<<endl;
cout<<"8. Upgrade drwala. Koszt: "<<koszt2<<" Obecny poziom: "<<poziom2<<endl;
SetConsoleTextAttribute(hOut, FOREGROUND_BLUE | FOREGROUND_INTENSITY);
cout<< "===================="<<endl; cout<< "===================="<<endl;
SetConsoleTextAttribute(hOut, FOREGROUND_RED | FOREGROUND_INTENSITY);
cout<<"9. ZAPIS."<<endl;
cout<<"10. WYJSCIE."<<endl;
SetConsoleTextAttribute(hOut, FOREGROUND_BLUE | FOREGROUND_INTENSITY);
cout<< "===================="<<endl; cout<< "===================="<<endl;
while (!(cin>>decyzja2))
{
cin.clear();
cin.sync();
tekst[22]="Tu tylko liczby! Wprowadz dowolna liczbe i zatwierdz enterem aby udowodnic, ze zrozumiales i wybierz opcje z menu :)" ;
animacja(tekst[22]);
cout<<endl;
}
system("cls");
switch(decyzja2)
{
case 1:
{
gold=gold+wydobycie[0];
populacja=populacja-straty_ludzie[0];
}
break;
case 2:
{
if (gold<koszt5)
{
tekst[23]="Nie masz wystarczajacej ilosci golda. Wymagane ";
animacja(tekst[23]);
cout<<koszt5<<endl;
Sleep(1000);
}
else
{
populacja=populacja+(3*domy)+1;
gold=gold-koszt5;
koszt5=koszt5*1.15;
}
}
break;
case 3:
{
if (gold<koszt4)
{
tekst[35]="Nie masz wystarczajacej liczby golda. Wymagane: ";
animacja(tekst[35]);
cout<<koszt4<<endl;
Sleep(1000);
}
else
{
domy++;
gold=gold-koszt4;
koszt4=koszt4+100;
}
}
break;
case 4:
{
drewno=drewno+wydobycie[1];
populacja=populacja-straty_ludzie[1];
}
break;
case 5:
{
kamien=kamien+wydobycie[2];
populacja=populacja-straty_ludzie[2];
}
break;
case 6:
{
if (gold<koszt1)
{
tekst[24]="Nie masz wystarczajacej ilosci golda. Wymagane: ";
animacja(tekst[24]);
cout<<koszt1<<endl;
Sleep(1000);
}
else
{
poziom1++;
gold=gold-koszt1;
koszt1=koszt1+1000;
}
}
break;
case 7:
{
if ((gold<koszt3)||(kamien<100)||(drewno<200))
{
tekst[25]="Nie masz wystarczajacej liczby surowca na ulepszenie. Potrzeba 100 kamienia, 200 drewna i ";
animacja(tekst[25]);
cout<<koszt3<<" golda"<<endl;
Sleep(1000);
}
else
{
poziom3++;
gold=gold-koszt3;
koszt3=koszt3+1000;
kamien=kamien-100;
drewno=drewno-200;
}
}
break;
case 8:
{
if ((gold<koszt2)||(kamien<75)||(drewno<120))
{
tekst[26]="Nie masz wystarczajacej liczby surowca na ulepszenie. Potrzeba 75 kamienia, 120 drewna i ";
animacja(tekst[26]);
cout<<koszt2<<" golda"<<endl;
Sleep(1000);
}
else
{
poziom2++;
gold=gold-koszt2;
koszt2=koszt2+1000;
kamien=kamien-75;
drewno=drewno-120;
}
}
break;
case 9:
{
plik.open("stangry.txt",ios::out);
plik<<gold<<endl;
plik<<drewno<<endl;
plik<<kamien<<endl;
plik<<populacja<<endl;
plik<<poziom1<<endl;
plik<<poziom2<<endl;
plik<<poziom3<<endl;
plik<<runda<<endl;
plik<<domy<<endl;
plik<<koszt1<<endl;
plik<<koszt2<<endl;
plik<<koszt3<<endl;
plik<<koszt4<<endl;
plik<<koszt5<<endl;
plik.close();
tekst[27]="Stan gry zapisany!";
animacja(tekst[27]);
cout<<endl;
Sleep(780);
}
break;
case 10:
{
tekst[36]="1. Powrot do menu";
animacja(tekst[36]);
cout<<endl;
tekst[37]="2. Wyjscie do pulpitu";
animacja(tekst[37]);
cout<<endl;
while(!(cin>>decyzja5))
{
cin.clear();
cin.sync();
tekst[38]="Tutaj tylko liczby! Wpisz dowolna liczbe i zatwierdz enterem by podwierdzic, ze zrozumiales a nastepnie wybierz opcje z
menu";
animacja(tekst[38]);
cout<<endl;
}
switch (decyzja5)
{
case 1:
goto nowa;
break;
case 2:
exit(0);
break;
default:
exit(0);
break;
}
}
break;
default:
{
tekst[28]="Nie ma takiej opcji w menu";
animacja(tekst[28]);
cout<<endl;
Sleep(1000);
}
break;
}
system("cls");
if ((gold<=0)||(populacja<=0))
{
cout<<" "<<endl<<" "<<" "<<endl;
cout<<"=============================================================================="<<endl;
tekst[29]=" Twoja liczba ludnosci wyniosla 0....PRZEGRALES!!!";
animacja(tekst[29]);
cout<<endl;
cout<<"=============================================================================="<<endl;
tekst[30]="Uruchom ponownie by podjac kolejna probe";
animacja(tekst[30]);
cout<<endl;
cout<<"=============================================================================="<<endl;
Sleep(3000);
goto nowa;
system("cls");
}
if ((poziom1>=15)&&(poziom2>=15)&&(poziom3>=15))
{
system("cls");
cout<<" "<<endl<<" "<<" "<<endl;
cout<<"=============================================================================="<<endl;
tekst[31]="WYGRALES!!!";
animacja(tekst[31]);
cout<<endl;
cout<<"=============================================================================="<<endl;
Sleep(3000);
exit(0);
}
}
}
break;
case 3:
{
tekst[32]="Czy chcesz wyjsc? 1-Tak/ 2-Nie";
animacja(tekst[32]);
while (!(cin>>decyzja4))
{
cin.clear();
cin.sync();
tekst[33]="Wybierz 1 lub 2";
animacja(tekst[33]);
cout<<endl;
}
switch(decyzja4)
{
case 1:
{
exit(0);
}
break;
case 2:
{
tekst[34]="Powrot";
animacja(tekst[34]);
cout<<endl;
Sleep(2000);
system("cls");
}
break;
default:
{
system("cls");
cout<<"Nie ma takiej opcji w menu"<<endl;
cout<<"Krytyczny blad programu"<<endl;
Sleep(3000);
exit(0);
}
break;
}
}
break;
default:
{
cout<<"Nie ma takiej opcji w menu"<<endl;
Sleep(3000);
}
}
}
}
Zrodlo: http://wklej.se/ubia

Podobne dokumenty