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