duszek Temat założony przez niniejszego użytkownika |
Gra rpg zapisywanie zdobytego expa i lepszy balans miedzy lvl potwora a poscaci » 2015-06-14 17:58:07 witam tak jak w temacie ;) jestem jeszcze zielony i powoli dłubię przy projekcie na programowanie obiektowe chętnie usłyszał bym uwagi czy rady ;) #ifndef _WIN32_WINNT #define _WIN32_WINNT 0x0502 #endif #include <cstdlib> #include <iostream> #include <windows.h> #include <conio.h> #include <time.h> #include <cstdio> #include <ctime> #include <string> #include <fstream> #include <ctype.h> #include <sstream> using namespace std; int y_pom, x_pom = 35, strtoint; char wybor, plansza[ 40 ][ 70 ], bohater = 1; string nick_pom = ""; int x = 69, y = 39, y1 = y, x1 = x;
int i, k, j, j2, x2 = 34, y2 = 20, liczba_przeciwnikow = 0, przeciwnicy_x[ 5 ], przeciwnicy_y[ 10 ]; char ruch, ekran = 'm', plec, znak, odpowiedz; bool czy_ruch = true, pierwsze_uruchomienie_gry = true; string linia, gracz_statystyki[ 8 ]; fstream plik; string lvlp, hpp, strp, mpp, agp, defp, expp; string nickp, zmienna_pomocnicza;
int rzut_kostka() { int s = rand() % 20 + 1; return s; }
class Postac { public: int lvl; string nazwa; int hp; int sila; int mana; int zrecznosc; int s; int def; string rodzaj; int exp; Postac( string n ) { nazwa = n; lvl = 1; hp = 100 + 150 * lvl; sila = 40 + 40 * lvl; mana = 100 + 10 * lvl; zrecznosc = 10 + 10 * lvl; def = 100 + 75 * lvl; exp = 0; } Postac() { nazwa; lvl = 1; hp = 100 + 150 * lvl; sila = 40 + 40 * lvl; mana = 100 + 10 * lvl; zrecznosc = 10 + 10 * lvl; def = 100 + 75 * lvl; exp = 0; } int doswiadczenie() { if( exp < 600 ) lvl = 1; else if(( exp >= 600 ) &&( exp < 1800 ) ) lvl = 2; else if(( exp >= 1800 ) &&( exp < 3000 ) ) lvl = 3; else if(( exp >= 3000 ) &&( exp < 4800 ) ) lvl = 4; else if(( exp >= 4800 ) &&( exp < 9200 ) ) lvl = 5; else if(( exp >= 9200 ) &&( exp < 18400 ) ) lvl = 6; else if(( exp >= 18400 ) &&( exp < 36800 ) ) lvl = 7; else if(( exp >= 75000 ) &&( exp < 100000 ) ) lvl = 8; else if( exp >= 100000 ) lvl = 9; } };
class Potwor { public: int lvl; string nazwa; int hp; int sila; int mana; int zrecznosc; int s; int def; string rodzaj; Potwor() { lvl = rand() % 5 + 1; hp = rand() % 100 + 100 * lvl; sila = rand() % 20 + 30 * lvl; mana = rand() % 100 + 10 * lvl; zrecznosc = rand() % 100 + 10 * lvl; int s = rand() % 100; if( s % 4 == 0 ) { nazwa = "Smok"; def = 75 + 10 * lvl + rand() % 100; } else if( s % 4 == 1 ) { nazwa = "Demon"; def = 100 + 10 * lvl + rand() % 100; } else if( s % 4 == 2 ) { nazwa = "Duch"; def = 20 + 10 * lvl + rand() % 100; } else if( s % 4 == 3 ) { nazwa = "Zombie"; def = 50 + 10 * lvl + rand() % 100; } if( s <= 70 ) { rodzaj = "Normal "; def = def + 100; } else if( s > 70 && s <= 90 ) { rodzaj = "Rare "; def = def + 150; } else if( s > 90 && s <= 98 ) { rodzaj = "Legend "; def = def + 200; } else { rodzaj = "Heroic"; def = def + 250; } } };
class Boss : public Potwor { public: Boss() : Potwor() { lvl = 10; nazwa = "Krol Labu"; hp = 1000; sila = 300; mana = 300; zrecznosc = 150; def = 800; } };
void postac_staty( Postac & p ) { cout << "Imie postaci: " << p.nazwa << endl; cout << "Lvl: " << p.lvl << endl; cout << "Ilosc zycia: " << p.hp << endl; cout << "Ilosc sily: " << p.sila << endl; cout << "Ilosc many: " << p.mana << endl; cout << "Wartosc zrecznosc: " << p.zrecznosc << endl; cout << "Wartosc defensywy: " << p.def << endl; cout << "Doswiadczenie: " << p.exp << endl; cout << endl; }
void potwor_staty( Potwor & d ) { cout << "Nazwa Potwora :" << d.nazwa << endl; cout << "rodzaj potwora :" << d.rodzaj << endl; cout << "Lvl : " << d.lvl << endl; cout << "Ilosc zycia :" << d.hp << endl; cout << "ilosc sily :" << d.sila << endl; cout << "ilosc many :" << d.mana << endl; cout << "wartosc zrecznosci :" << d.zrecznosc << endl; cout << "Wartosc defensywy :" << d.def << endl; cout << endl; }
int atak( Postac & p, Potwor & d ) { int atak = 0.2 * p.sila + 0.1 * p.zrecznosc + 2.5 * p.lvl - 0.01 * d.def; p.mana = p.mana - 10; return atak; }
int atak_potwor( Potwor & d, Postac & p ) { int atak = 0.2 * d.sila + 0.1 * d.zrecznosc + 2.5 * d.lvl - 0.01 * p.def; d.mana -= 10; return atak; }
void regeneracja( Postac & p ) { cout << " Potwor Spagetti wstapil z czelusci bigosu i podarowal Ci kolejne zycie. Wlasnie uzyles cudownej potki oczyszczenia, ktora regeneruje twoje zycie i mane." << endl; p.hp = 100 + 100 * p.lvl; p.mana = 100 + 10 * p.lvl; }
void walka( Potwor & d2 ) { Postac * p1 = new Postac(); plik.open( "panel_gracza.txt", ios::in ); if( plik.good() == true ) { while( !plik.eof() ) { for( i = 0; i < 5; i++ ) { getline( plik, linia ); gracz_statystyki[ i ] = linia; } } plik.close(); } for( i = 0; i <= 70; i++ ) { if(( gracz_statystyki[ 3 ] )[ i ] == 40 ) { i++; do { zmienna_pomocnicza +=(( gracz_statystyki[ 3 ] )[ i ] ); i++; } while(( gracz_statystyki[ 3 ] )[ i ] != 41 ); zmienna_pomocnicza += 7; } } j = 0; for( i = 0; i < 70; i++ ) { if( j == 0 ) lvlp += zmienna_pomocnicza[ i ]; if( j == 1 ) nick_pom += zmienna_pomocnicza[ i ]; if( j == 2 ) hpp += zmienna_pomocnicza[ i ]; if( j == 3 ) strp += zmienna_pomocnicza[ i ]; if( j == 4 ) mpp += zmienna_pomocnicza[ i ]; if( j == 5 ) agp += zmienna_pomocnicza[ i ]; if( j == 6 ) defp += zmienna_pomocnicza[ i ]; if( j == 7 ) expp += zmienna_pomocnicza[ i ]; if( zmienna_pomocnicza[ i ] == 7 ) j++; } p1->lvl = atoi( lvlp.c_str() ); p1->nazwa = nickp; p1->hp = atoi( hpp.c_str() ); p1->sila = atoi( strp.c_str() ); p1->mana = atoi( mpp.c_str() ); p1->zrecznosc = atoi( agp.c_str() ); p1->def = atoi( defp.c_str() ); p1->exp = atoi( expp.c_str() ); cout << "Czy chcesz walczyc? (T)/(N)" << endl; cin >> odpowiedz; if( odpowiedz == 't' ) odpowiedz = 'T'; else if( odpowiedz == 'n' ) { odpowiedz = 'N'; } switch( odpowiedz ) { case 'T': do { int r = rzut_kostka(); cout << "Rzut kostka, wypadlo " << r << "." << endl; int a = r + atak( * p1, d2 ); cout << "Zadales " << a << " obrazen mieczem." << endl; d2.hp = d2.hp - a; cout << "Przeciwnikowi pozostalo " << d2.hp << " zycia." << endl; cout << "Pozostalo przeciwnikowi " << d2.mana << " many!" << endl; if( d2.hp > 0 ) { cout << "*Przeciwnik atakuje.*" << endl; int r1 = rzut_kostka(); cout << "rzut kostka =" << r1 << endl; int ap = r1 + atak_potwor( d2, * p1 ); cout << "Zadaje " << ap << " obrazen." << endl; p1->hp = p1->hp - ap; cout << "Pozostalo " << p1->hp << " zycia!" << endl; cout << "Pozostalo " << p1->mana << " many!" << endl; cout << endl; } if(( d2.hp <= 0 && p1->hp > 0 ) ||( d2.mana < 0 && p1->hp > 0 ) ) { p1->exp = p1->exp + 600 * d2.lvl; p1->doswiadczenie(); cout << "*** WYGRALES WALKE!!! ***" << endl; cout << endl; break; } else if(( p1->hp <= 0 && d2.hp > 0 ) ||( p1->mana < 0 && d2.hp > 0 ) ) { p1->exp = p1->exp - 100; p1->doswiadczenie(); cout << "´´´´´´´´´´´´´´´´´´´´´´´´¶´´´´´´´´´¶´´´´´´´´´´´´´´´´´´´´´´´´´´" << endl; cout << "´´´´´´´´´´´´´´´´´´´´´´´´´¶´´´´´´´´´¶´´´´´´´´´´´´´´´´´´´´´´´´´" << endl; cout << "´´´´´´´´´´´´´´´´´´´´´¶´´´¶´´´´´´´´´¶´´´¶´´´´´´´´´´´´´´´´´´´´´" << endl; cout << "´´´´´´´´´´´´´´´´´´´´´¶´´¶¶´´´´´´´´´¶¶´´¶´´´´´´´´´´´´´´´´´´´´´" << endl; cout << "´´´´´´´´´´´´´´´´´´´´´¶¶´¶¶¶´´´´´´´¶¶¶´¶¶´´´´´´´´´´´´´´´´´´´´´" << endl; cout << "´´´´´´´´´´´´´¶´´´´´´¶¶´´´¶¶¶´´´´´¶¶¶´´´¶¶´´´´´´¶´´´´´´´´´´´´´" << endl; cout << "´´´´´´´´´´´´¶¶´´´´´´¶¶´´´¶¶¶´´´´´¶¶¶´´´¶¶´´´´´´¶¶´´´´´´´´´´´´" << endl; cout << "´´´´´´´´´´´¶¶´´´´´´¶¶´´´´¶¶¶¶´´´¶¶¶¶´´´´¶¶´´´´´´¶¶´´´´´´´´´´´" << endl; cout << "´´´´´´´´´´´¶¶´´´´´¶¶¶´´´´¶¶¶¶´´¶¶¶¶¶´´´´¶¶¶´´´´´¶¶¶´´´´´´´´´´" << endl; cout << "´´´´´´´¶´´¶¶¶´´´´¶¶¶¶´´´´¶¶¶¶´´´¶¶¶¶´´´´¶¶¶¶´´´¶¶¶¶´´¶´´´´´´´" << endl; cout << "´´´´´´´¶¶´¶¶¶¶¶´´¶¶¶¶´´´¶¶¶¶¶´´´¶¶¶¶¶´´´¶¶¶¶´´¶¶¶¶¶´¶¶´´´´´´´" << endl; cout << "´´´´´´´¶¶´¶¶¶¶¶´´¶¶¶¶¶¶¶¶¶¶¶´´´´´¶¶¶¶¶¶¶¶¶¶¶´´¶¶¶¶¶´¶¶´´´´´´´" << endl; cout << "´´´´´´´¶¶´¶¶¶¶¶´´¶¶¶¶¶¶¶¶¶¶¶´´´´´¶¶¶¶¶¶¶¶¶¶¶´´¶¶¶¶¶´¶¶´´´´´´´" << endl; cout << "´´´´´´¶¶¶´´¶¶¶¶´´´¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶´´´¶¶¶¶´´¶¶¶´´´´´´" << endl; cout << "´´´´´¶¶¶¶´´¶¶¶¶´´´¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶´´´¶¶¶¶´´¶¶¶¶´´´´´" << endl; cout << "´´´´¶¶¶¶´´´¶¶¶¶¶´¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶´¶¶¶¶¶´´´¶¶¶¶´´´´" << endl; cout << "´´´¶¶¶¶´´´´¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶´´´¶¶¶¶´´´´" << endl; cout << "´´´¶¶¶¶¶´´¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶´´¶¶¶¶´´´´" << endl; cout << "´´´´¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶´´´´" << endl; cout << "´´´´¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶´´´´" << endl; cout << "´´´´´¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶´´´´´" << endl; cout << "´´´´´¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶´´´´´" << endl; cout << "´´´´´´¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶´´´´´´" << endl; cout << "´´´´´¶¶¶¶¶´´´´´´´´´´´¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶´´´´´´´´´´´¶¶¶¶¶´´´´´" << endl; cout << "´´´´´¶¶¶¶¶¶´´´´´´´´´´´´´¶¶¶¶¶¶¶¶¶¶¶¶¶´´´´´´´´´´´´´¶¶¶¶¶¶´´´´´" << endl; cout << "´´´´´´¶¶¶¶¶¶¶´´´´´´´´..´´´´´¶¶¶¶¶¶¶¶¶´´´´´..´´´´´´´´¶¶¶¶¶¶´´´" << endl; cout << "´´´´´´´¶¶¶¶¶¶¶¶´´´´´´´´´´´´´¶¶¶¶¶´´´´´´´´´´´´´¶¶¶¶¶¶¶¶´´´´´´´" << endl; cout << "´´´´´´´´¶¶¶¶¶¶¶¶¶¶´´´´´´´´´´´¶¶¶´´´´´´´´´´´¶¶¶¶¶¶¶¶¶¶´´´´´´´´" << endl; cout << "´´´´´´´´´´´¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶´´´´´´´´´´´" << endl; cout << "´´´´´´´´´´´´´´¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶´´´¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶´´´´´´´´´´´´´´" << endl; cout << "´´´´´´´´´´´´´´´´´´¶¶¶¶¶¶¶¶¶¶´´´´´¶¶¶¶¶¶¶¶¶¶´´´´´´´´´´´´´´´´´´" << endl; cout << "´´´´´´´´´´´´´´´´´´´¶¶¶¶¶¶¶¶´´´´´´´¶¶¶¶¶¶¶¶´´´´´´´´´´´´´´´´´´´" << endl; cout << "´´´´´´´´´´´´´´´´´´¶¶¶¶¶¶¶¶¶´´´´´´´¶¶¶¶¶¶¶¶¶´´´´´´´´´´´´´´´´´´" << endl; cout << "´´´´´´´´´´´´´´´´´´¶¶¶¶¶¶¶¶¶´¶¶¶¶¶´¶¶¶¶¶¶¶¶¶´´´´´´´´´´´´´´´´´´" << endl; cout << "´´´´´´´´´´´´´´´´´¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶´´´´´´´´´´´´´´´´´" << endl; cout << "´´´´´´´´´´´´´´´´´¶¶¶´´¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶´´¶¶¶´´´´´´´´´´´´´´´´´" << endl; cout << "´´´´´´´´´´´´´´´´´´¶¶´´¶¶¶¶´´¶¶¶¶¶´´¶¶¶¶´´¶¶´´´´´´´´´´´´´´´´´´" << endl; cout << "´´´´´´´´´´´´´´´´´´´´´´¶¶¶¶´´¶¶¶¶¶´´¶¶¶¶´´´´´´´´´´´´´´´´´´´´´" << endl; cout << endl; regeneracja( * p1 ); break; } else { cout << "Walka dalej trwa!" << endl; cout << endl; } } while( p1->hp > 0 ); break; case 'N': cout << "Uciekasz w poplochu, rzuc kostka by sie przekonac, czy udalo ci sie uciec" << endl; int r3 = rzut_kostka(); cout << "Wyrzuciles " << r3 << "." << endl; if( r3 <= 10 ) { cout << "Niestety, uciekajac potknales sie o korzen drzewa i upadles. W miedzyczasie potwor dogonil ciebie i zaatakowal." << endl; cout << "Umierasz w meczarniach. Tracisz doswiadczenie." << endl; cout << endl; p1->hp = 0; p1->exp = p1->exp - 100; p1->doswiadczenie(); regeneracja( * p1 ); } else { cout << "Udalo ci sie uciec od bestii, ktora ciebie gonila. Masz teraz szanse pojsc inna droga by ominac bezduszna bestie!" << endl; cout << endl; } break; } }
void walka_boss( Boss & b ) { cout << "Nazwa :" << b.nazwa << endl; cout << "rodzaj potwora :" << b.rodzaj << endl; cout << "Lvl : " << b.lvl << endl; cout << "Ilosc zycia :" << b.hp << endl; cout << "ilosc sily :" << b.sila << endl; cout << "ilosc many :" << b.mana << endl; cout << "wartosc zrecznosci :" << b.zrecznosc << endl; cout << "Wartosc defensywy :" << b.def << endl; Postac * p = new Postac(); plik.open( "panel_gracza.txt", ios::in ); if( plik.good() == true ) { while( !plik.eof() ) { for( i = 0; i < 5; i++ ) { getline( plik, linia ); gracz_statystyki[ i ] = linia; } } plik.close(); } for( i = 0; i <= 70; i++ ) { if(( gracz_statystyki[ 3 ] )[ i ] == 40 ) { i++; do { zmienna_pomocnicza +=(( gracz_statystyki[ 3 ] )[ i ] ); i++; } while(( gracz_statystyki[ 3 ] )[ i ] != 41 ); zmienna_pomocnicza += 7; } } j = 0; for( i = 0; i < 70; i++ ) { if( j == 0 ) lvlp += zmienna_pomocnicza[ i ]; if( j == 1 ) nick_pom += zmienna_pomocnicza[ i ]; if( j == 2 ) hpp += zmienna_pomocnicza[ i ]; if( j == 3 ) strp += zmienna_pomocnicza[ i ]; if( j == 4 ) mpp += zmienna_pomocnicza[ i ]; if( j == 5 ) agp += zmienna_pomocnicza[ i ]; if( j == 6 ) defp += zmienna_pomocnicza[ i ]; if( j == 7 ) expp += zmienna_pomocnicza[ i ]; if( zmienna_pomocnicza[ i ] == 7 ) j++; } p->lvl = atoi( lvlp.c_str() ); p->nazwa = nickp; p->hp = atoi( hpp.c_str() ); p->sila = atoi( strp.c_str() ); p->mana = atoi( mpp.c_str() ); p->zrecznosc = atoi( agp.c_str() ); p->def = atoi( defp.c_str() ); p->exp = atoi( expp.c_str() ); string gotowosc; cout << "Aby uwolnic ksiezniczke z rak zlego krola, nalezy go pokonac walce. Nie masz juz odwrotu. Bierz za swoj miecz i zgladz przeciwnika!" << endl; cout << "Aby rozpoczac walke, zadeklaruj w konsoli swa gotowosc wpisujac *gotowy*." << endl; cin >> gotowosc; string gotowy = "gotowy"; if( gotowosc == gotowy ) { while( p->hp > 0 ) { int r = rzut_kostka(); cout << "Rzut kostka, wypadlo " << r << "." << endl; int a = r + atak( * p, b ); cout << "Zadales " << a << " obrazen mieczem." << endl; b.hp = b.hp - a; cout << "Przeciwnikowi pozostalo " << b.hp << " zycia." << endl; cout << "Pozostalo przeciwnikowi " << b.mana << " many!" << endl; if( b.hp > 0 ) { cout << "*Krol atakuje.*" << endl; int r1 = rzut_kostka(); int ap = r1 + atak_potwor( b, * p ); cout << "Zadaje " << ap << " obrazen." << endl; p->hp = p->hp - ap; cout << "Pozostalo " << p->hp << " zycia!" << endl; cout << "Pozostalo " << p->mana << " many!" << endl; cout << endl; } if(( b.hp <= 0 && p->hp > 0 ) ||( b.mana < 0 && p->hp > 0 ) ) { p->exp = p->exp + 100 * b.lvl; cout << "*** WYGRALES OSTATECZNA WALKE!!! ***" << endl; cout << endl; break; } else if(( p->hp <= 0 && b.hp > 0 ) ||( p->mana < 0 && b.hp > 0 ) ) { p->exp = p->exp - 100 * p->lvl; cout << endl; cout << "´´´´´´´´´´´´´´´´´´´´´´´´¶´´´´´´´´´¶´´´´´´´´´´´´´´´´´´´´´´´´´´" << endl; cout << "´´´´´´´´´´´´´´´´´´´´´´´´´¶´´´´´´´´´¶´´´´´´´´´´´´´´´´´´´´´´´´´" << endl; cout << "´´´´´´´´´´´´´´´´´´´´´¶´´´¶´´´´´´´´´¶´´´¶´´´´´´´´´´´´´´´´´´´´´" << endl; cout << "´´´´´´´´´´´´´´´´´´´´´¶´´¶¶´´´´´´´´´¶¶´´¶´´´´´´´´´´´´´´´´´´´´´" << endl; cout << "´´´´´´´´´´´´´´´´´´´´´¶¶´¶¶¶´´´´´´´¶¶¶´¶¶´´´´´´´´´´´´´´´´´´´´´" << endl; cout << "´´´´´´´´´´´´´¶´´´´´´¶¶´´´¶¶¶´´´´´¶¶¶´´´¶¶´´´´´´¶´´´´´´´´´´´´´" << endl; cout << "´´´´´´´´´´´´¶¶´´´´´´¶¶´´´¶¶¶´´´´´¶¶¶´´´¶¶´´´´´´¶¶´´´´´´´´´´´´" << endl; cout << "´´´´´´´´´´´¶¶´´´´´´¶¶´´´´¶¶¶¶´´´¶¶¶¶´´´´¶¶´´´´´´¶¶´´´´´´´´´´´" << endl; cout << "´´´´´´´´´´´¶¶´´´´´¶¶¶´´´´¶¶¶¶´´¶¶¶¶¶´´´´¶¶¶´´´´´¶¶¶´´´´´´´´´´" << endl; cout << "´´´´´´´¶´´¶¶¶´´´´¶¶¶¶´´´´¶¶¶¶´´´¶¶¶¶´´´´¶¶¶¶´´´¶¶¶¶´´¶´´´´´´´" << endl; cout << "´´´´´´´¶¶´¶¶¶¶¶´´¶¶¶¶´´´¶¶¶¶¶´´´¶¶¶¶¶´´´¶¶¶¶´´¶¶¶¶¶´¶¶´´´´´´´" << endl; cout << "´´´´´´´¶¶´¶¶¶¶¶´´¶¶¶¶¶¶¶¶¶¶¶´´´´´¶¶¶¶¶¶¶¶¶¶¶´´¶¶¶¶¶´¶¶´´´´´´´" << endl; cout << "´´´´´´´¶¶´¶¶¶¶¶´´¶¶¶¶¶¶¶¶¶¶¶´´´´´¶¶¶¶¶¶¶¶¶¶¶´´¶¶¶¶¶´¶¶´´´´´´´" << endl; cout << "´´´´´´¶¶¶´´¶¶¶¶´´´¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶´´´¶¶¶¶´´¶¶¶´´´´´´" << endl; cout << "´´´´´¶¶¶¶´´¶¶¶¶´´´¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶´´´¶¶¶¶´´¶¶¶¶´´´´´" << endl; cout << "´´´´¶¶¶¶´´´¶¶¶¶¶´¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶´¶¶¶¶¶´´´¶¶¶¶´´´´" << endl; cout << "´´´¶¶¶¶´´´´¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶´´´¶¶¶¶´´´´" << endl; cout << "´´´¶¶¶¶¶´´¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶´´¶¶¶¶´´´´" << endl; cout << "´´´´¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶´´´´" << endl; cout << "´´´´¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶´´´´" << endl; cout << "´´´´´¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶´´´´´" << endl; cout << "´´´´´¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶´´´´´" << endl; cout << "´´´´´´¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶´´´´´´" << endl; cout << "´´´´´¶¶¶¶¶´´´´´´´´´´´¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶´´´´´´´´´´´¶¶¶¶¶´´´´´" << endl; cout << "´´´´´¶¶¶¶¶¶´´´´´´´´´´´´´¶¶¶¶¶¶¶¶¶¶¶¶¶´´´´´´´´´´´´´¶¶¶¶¶¶´´´´´" << endl; cout << "´´´´´´¶¶¶¶¶¶¶´´´´´´´´..´´´´´¶¶¶¶¶¶¶¶¶´´´´´..´´´´´´´´¶¶¶¶¶¶´´´" << endl; cout << "´´´´´´´¶¶¶¶¶¶¶¶´´´´´´´´´´´´´¶¶¶¶¶´´´´´´´´´´´´´¶¶¶¶¶¶¶¶´´´´´´´" << endl; cout << "´´´´´´´´¶¶¶¶¶¶¶¶¶¶´´´´´´´´´´´¶¶¶´´´´´´´´´´´¶¶¶¶¶¶¶¶¶¶´´´´´´´´" << endl; cout << "´´´´´´´´´´´¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶´´´´´´´´´´´" << endl; cout << "´´´´´´´´´´´´´´¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶´´´¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶´´´´´´´´´´´´´´" << endl; cout << "´´´´´´´´´´´´´´´´´´¶¶¶¶¶¶¶¶¶¶´´´´´¶¶¶¶¶¶¶¶¶¶´´´´´´´´´´´´´´´´´´" << endl; cout << "´´´´´´´´´´´´´´´´´´´¶¶¶¶¶¶¶¶´´´´´´´¶¶¶¶¶¶¶¶´´´´´´´´´´´´´´´´´´´" << endl; cout << "´´´´´´´´´´´´´´´´´´¶¶¶¶¶¶¶¶¶´´´´´´´¶¶¶¶¶¶¶¶¶´´´´´´´´´´´´´´´´´´" << endl; cout << "´´´´´´´´´´´´´´´´´´¶¶¶¶¶¶¶¶¶´¶¶¶¶¶´¶¶¶¶¶¶¶¶¶´´´´´´´´´´´´´´´´´´" << endl; cout << "´´´´´´´´´´´´´´´´´¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶´´´´´´´´´´´´´´´´´" << endl; cout << "´´´´´´´´´´´´´´´´´¶¶¶´´¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶´´¶¶¶´´´´´´´´´´´´´´´´´" << endl; cout << "´´´´´´´´´´´´´´´´´´¶¶´´¶¶¶¶´´¶¶¶¶¶´´¶¶¶¶´´¶¶´´´´´´´´´´´´´´´´´´" << endl; cout << "´´´´´´´´´´´´´´´´´´´´´´¶¶¶¶´´¶¶¶¶¶´´¶¶¶¶´´´´´´´´´´´´´´´´´´´´´" << endl; cout << endl; break; } else { cout << "Walka dalej trwa!" << endl; cout << endl; } } } else { cout << "Nie badz cykor, walcz!" << endl; } }
void kursor_xy( int x, int y ) { COORD c; c.X = x - 1; c.Y = y - 1; SetConsoleCursorPosition( GetStdHandle( STD_OUTPUT_HANDLE ), c ); }
void wypisanie_pliku() { if( plik.good() == true ) { while( !plik.eof() ) { getline( plik, linia ); cout << linia << endl; } plik.close(); } }
int main( int argc, char ** argv ) { srand( time( NULL ) ); SetConsoleDisplayMode( GetStdHandle( STD_OUTPUT_HANDLE ), CONSOLE_FULLSCREEN_MODE, NULL ); zapetlenie_gry: SetConsoleTextAttribute( GetStdHandle( STD_OUTPUT_HANDLE ), FOREGROUND_RED | FOREGROUND_INTENSITY ); system( "cls" ); switch( ekran ) { case 'n': { plik.open( "nowy_gracz.txt", ios::trunc | ios::in ); wypisanie_pliku(); cout << "Podaj imie bohatera: "; cin >> nick_pom; cout << "\nZapisywanie postaci"; Sleep( 1024 ); cout << "."; Sleep( 1024 ); cout << "."; Sleep( 1024 ); cout << "."; Postac * p1 = new Postac( nick_pom ); plik.open( "panel_gracza.txt", ios::trunc | ios::out ); plik << endl; plik << " (M)-menu (P)-pomoc (X)-wyjscie" << endl; plik << "................................................................................" << endl; plik << " Lvl(" << p1->lvl << ") "; plik << "Imie(" << p1->nazwa << ") "; plik << "Hp(" << p1->hp << ") "; plik << "Str(" << p1->sila << ") "; plik << "Mp(" << p1->mana << ") "; plik << "Ag(" << p1->zrecznosc << ") "; plik << "Def(" << p1->def << ") "; plik << "Exp(" << p1->exp << ") " << endl; plik << "................................................................................"; plik.close(); ekran = 'w'; goto zapetlenie_gry; break; } case 'w': { for( i = 0; i < 40; i++ ) for( j = 0; j < 70; j++ ) plansza[ i ][ j ] = 32; for( i = 0; i < 40; i++ ) for( j = 0; j < 70; j++ ) { if( i <= 39 && j <= 8 ) plansza[ i ][ j ] = 29; if( j >= 10 && j <= 48 &&( i == 0 || i == 39 ) || i == 39 && j >= 53 && j <= 68 || j == 9 && i >= 1 && i <= 38 || j == 69 && i >= 20 && i <= 38 ) plansza[ i ][ j ] = 5; if( j >= 23 && j <= 42 &&( j - 23 ) >= i && i >= 1 && i <= 25 ) plansza[ i ][ j ] = 5; if( j >= 10 && j <= 30 && i > j && i >= 1 && i <= 30 ) plansza[ i ][ j ] = 5; if( j >= 49 && j <= 52 &&( i >= 0 && i <= 25 || i >= 28 && i <= 39 ) ) plansza[ i ][ j ] = 37; if( j >= 55 && j <= 67 && i == 0 || i == 19 &&( j >= 55 && j <= 60 || j >= 62 && j <= 67 ) || i >= 2 && i <= 17 &&( j == 53 || j == 69 ) ||( j == 53 || j == 54 || j == 68 || j == 69 ) &&( i == 0 || i == 1 || i == 18 || i == 19 ) ) plansza[ i ][ j ] = 22; } if( liczba_przeciwnikow != 10 ) { for( i = liczba_przeciwnikow; i <= 9; i++ ) { losowaniey: przeciwnicy_y[ i ] = rand() % 39 + 1; if( przeciwnicy_y[ i ] >= 39 ) goto losowaniey; losowaniex: przeciwnicy_x[ i ] = rand() % 50 + 11; if( przeciwnicy_x[ i ] >= 49 ) goto losowaniex; if( plansza[ przeciwnicy_y[ i ] ][ przeciwnicy_x[ i ] ] != 32 ) goto losowaniey; plansza[ przeciwnicy_y[ i ] ][ przeciwnicy_x[ i ] ] = 2; liczba_przeciwnikow++; } } else for( i = 0; i <= 9; i++ ) plansza[ przeciwnicy_y[ i ] ][ przeciwnicy_x[ i ] ] = 2; for( i = 0; i < 40; i++ ) for( j = 0; j < 70; j++ ) { znak = plansza[ i ][ j ]; switch( znak ) { case 2: SetConsoleTextAttribute( GetStdHandle( STD_OUTPUT_HANDLE ), FOREGROUND_RED | BACKGROUND_GREEN ); break; case 5: SetConsoleTextAttribute( GetStdHandle( STD_OUTPUT_HANDLE ), FOREGROUND_GREEN | FOREGROUND_INTENSITY | BACKGROUND_GREEN ); break; case 22: SetConsoleTextAttribute( GetStdHandle( STD_OUTPUT_HANDLE ), NULL | FOREGROUND_INTENSITY | BACKGROUND_RED | BACKGROUND_GREEN | BACKGROUND_BLUE ); break; case 29: SetConsoleTextAttribute( GetStdHandle( STD_OUTPUT_HANDLE ), NULL ); break; case 32: SetConsoleTextAttribute( GetStdHandle( STD_OUTPUT_HANDLE ), FOREGROUND_GREEN | BACKGROUND_GREEN ); break; case 37: SetConsoleTextAttribute( GetStdHandle( STD_OUTPUT_HANDLE ), FOREGROUND_BLUE | FOREGROUND_INTENSITY | BACKGROUND_BLUE ); break; default: break; } cout << plansza[ i ][ j ]; if( j == 69 ) cout << endl; } SetConsoleTextAttribute( GetStdHandle( STD_OUTPUT_HANDLE ), FOREGROUND_RED | FOREGROUND_INTENSITY ); plik.open( "panel_gracza.txt", ios::in ); cout << endl; wypisanie_pliku(); while( true ) { SetConsoleTextAttribute( GetStdHandle( STD_OUTPUT_HANDLE ), FOREGROUND_BLUE | BACKGROUND_GREEN ); kursor_xy( x, y ); cout << bohater; ruch = getch(); kursor_xy( x, y ); cout << ' '; switch( ruch ) { case 72: { if( plansza[ y - 2 ][ x - 1 ] != 32 ) { if( plansza[ y - 2 ][ x - 1 ] == 2 ) { ekran = 'i'; goto zapetlenie_gry; } else break; } else { y--; kursor_xy( x, y ); cout << bohater; break; } } case 80: { if( plansza[ y ][ x - 1 ] != 32 ) { if( plansza[ y ][ x - 1 ] == 2 ) { ekran = 'i'; goto zapetlenie_gry; } else break; } else { y++; kursor_xy( x, y ); cout << bohater; break; } } case 75: { if( plansza[ y - 1 ][ x - 2 ] != 32 ) { if( plansza[ y - 1 ][ x - 2 ] == 2 ) { ekran = 'i'; goto zapetlenie_gry; } else break; } else { x--; kursor_xy( x, y ); cout << bohater; break; } } case 77: { if( plansza[ y - 1 ][ x ] != 32 ) { if( plansza[ y - 1 ][ x ] == 2 ) { ekran = 'i'; goto zapetlenie_gry; } else break; } else { x++; kursor_xy( x, y ); cout << bohater; break; } } } if( ruch == 'x' || ruch == 'X' ) { goto koniec_gry; } if( ruch == 'm' || ruch == 'm' ) { ekran = 'm'; goto zapetlenie_gry; } } break; } case 'm': { plik.open( "menu.txt", ios::in ); wypisanie_pliku(); y_pom = 17; kursor_xy( x_pom, y_pom ); cout << " "; do { wybor = getch(); switch( wybor ) { case 72: { if( y_pom == 17 ) y_pom = 21; else y_pom--; break; } case 80: { if( y_pom == 21 ) y_pom = 17; else y_pom++; break; } case 13: { if( y_pom == 17 ) { system( "cls" ); ekran = 'n'; goto zapetlenie_gry; } if( y_pom == 18 ) { system( "cls" ); ekran = 'w'; goto zapetlenie_gry; } if( y_pom == 19 ) { system( "cls" ); plik.open( "pomoc.txt", ios::in ); wypisanie_pliku(); cout << "Teraz nastapi powrot do menu. "; system( "PAUSE" ); goto zapetlenie_gry; } if( y_pom == 20 ) { plik.open( "panel_gracza.txt", ios::trunc | ios::out ); plik.close(); nickp = ""; } if( y_pom == 21 ) { koniec_gry: SetConsoleTextAttribute( GetStdHandle( STD_OUTPUT_HANDLE ), FOREGROUND_RED | FOREGROUND_INTENSITY ); system( "cls" ); exit( NULL ); } break; } default: { break; } } kursor_xy( x_pom, y_pom ); cout << " "; } while( wybor != 13 ); break; } case 'i': { system( "CLS" ); Potwor * d = new Potwor(); potwor_staty( * d ); walka( * d ); system( "PAUSE" ); ekran = 'w'; goto zapetlenie_gry; } } goto zapetlenie_gry; return 0; }
|