Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <Windows.h>
- #include <string>
- #include <cstdio>
- #include <conio.h>
- #include <cstdlib>
- using namespace std;
- #define WIDTH 80
- #define HEIGHT 25
- #define MAPW 10
- #define MAPH 4
- struct PLAYER
- {
- int x,y;
- bool strzal;
- int sx, sy;
- unsigned int pkt;
- unsigned int lvl;
- PLAYER():x(40),y(25), sx(0),sy(0),strzal(false),pkt(0),lvl(0)
- {
- }
- }player;
- int status = 0;
- float mx = 0;
- float my = 2;
- bool mr = true;
- float speed = 0.2;
- bool map[MAPW][MAPH];
- void gotoxy(int x, int y)
- {
- COORD coord;
- coord.X = x;
- coord.Y = y;
- SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);
- }
- void drawplayer(int x, int y)
- {
- gotoxy(x-2,y);
- cout << "=|_|=";
- }
- void drawstrzal(int x, int y)
- {
- gotoxy(x,y);
- cout << (char)193;
- }
- void drawmap()
- {
- for( int i = 0; i < MAPW; i ++)
- for( int j = 0; j < MAPH; j ++)
- if(map[i][j])
- {
- gotoxy(4 + (int)mx + i*4, my + j*2 + 1);
- if( ((int)mx)%2 )
- {
- cout << (char)176;
- }else{
- cout << (char)178;
- }
- }
- }
- void odliczanie(int o, int d,string l) //odliczania + czyszczenie ekranu
- {
- gotoxy(o,d);
- cout << l;
- cout << " za 5...";
- Sleep(1000);
- gotoxy(o,d);
- cout << l;
- cout << " za 4...";
- Sleep(1000);
- gotoxy(o,d);
- cout << l;
- cout << " za 3...";
- Sleep(1000);
- gotoxy(o,d);
- cout << l;
- cout << " za 2...";
- Sleep(1000);
- gotoxy(o,d);
- cout << l;
- cout << " za 1...";
- Sleep(1000);
- system("CLS");
- }
- void Render()
- {
- system("CLS");
- drawmap();
- drawplayer( player.x, player.y );
- if( player.strzal ) drawstrzal( player.sx, player.sy );
- gotoxy( 2, 2);
- cout << "Wynik:";
- cout << player.pkt;
- }
- void Update(int s)
- {
- bool q = false;
- for( int i = 0; i < MAPW; i ++)
- for( int j = 0; j < MAPH; j ++)
- if( map[i][j] == true )
- {
- q = true;
- break;
- }
- if(q == false) status = 1;
- if( player.strzal ) player.sy --;
- if( player.strzal )
- for( int i = 0; i < MAPW; i ++)
- for( int j = 0; j < MAPH; j ++)
- if( 4 + (int)mx + i*4 == player.sx && my + j*2 == player.sy && map[i][j] == true )
- {
- map[i][j] = false;
- player.strzal = false;
- player.pkt += 100;
- }
- if(mr) //Predkosc poruszania sie celow
- {
- mx += speed+s;
- }else{
- mx -= speed+s;
- }
- if( (int)mx > 36 || (int)mx < 0 )
- {
- mr = !mr;
- my ++;
- }
- if( player.x < 3 ) player.x = 3;
- if( player.x > WIDTH -4) player.x = WIDTH-4;
- if( player.sy < 0 ) player.strzal = false;
- if( my >= 18 ) status = 2;
- }
- int main()
- {
- int u,v;
- do {
- system("CLS");
- gotoxy(15,3);
- cout << "MENU:";
- gotoxy(15,6);
- cout << "1.Nowa Gra.";
- gotoxy(15,7);
- cout << "2.Jak Grac?";
- gotoxy(15,8);
- cout << "3.Zakoncz.";
- u = getch();
- }while(48 >= u || u >= 52 );
- switch(u)
- {
- case 49:
- do{
- system("CLS");
- gotoxy(15,3);
- cout << "Poziom trudnosci:";
- gotoxy(15,6);
- cout << "1.Latwy.";
- gotoxy(15,7);
- cout << "2.Sredni.";
- gotoxy(15,8);
- cout << "3.Trudny.";
- gotoxy(15,9);
- cout << "4.Nie do przejscia.";
- gotoxy(15,10);
- cout << "5.Powrot do Menu glownego.";
- v = getch();
- }while(48 >= v || v >= 54 );
- switch(v)
- {
- case 49:
- for( int i = 0; i < MAPW; i ++)
- for( int j = 0; j < MAPH; j ++)
- map[i][j] = true;
- while (1)
- {
- if(status != 0)
- {
- break;
- }
- if (GetAsyncKeyState(VK_HOME))
- {
- system("CLS");
- gotoxy(15,3);
- cout << "INFO:";
- gotoxy(15,6);
- cout << "Poruszanie za pomoca Strzalek.";
- gotoxy(15,7);
- cout << "Strzal za pomoca Spacji.";
- gotoxy(15,8);
- cout << "Podczas gry przycisk 'HOME' wyswietla INFO.";
- gotoxy(15,9);
- cout << "Podczas gry przycisk 'SHIFT' pauzuje gre do nacisniecia 'ENTER'.";
- gotoxy(15,10);
- cout << "Podczas gry przycisk 'ESC' konczy prace programu.";
- odliczanie(15,12,"Powrot do gry");
- }
- if (GetAsyncKeyState(VK_ESCAPE))
- {
- exit(1);
- }
- if (GetAsyncKeyState(VK_SHIFT))
- {
- system("CLS");
- gotoxy(18,10);
- cout << "PAUZA, aby ponowic gre wcisnij ENTER";
- getch();
- while(getch() != 0x0D)
- {
- gotoxy(18,10);
- cout << "PAUZA, aby ponowic gre wcisnij ENTER";
- getch();
- }
- }
- if (GetAsyncKeyState(VK_RIGHT))
- {
- player.x ++;
- }
- if (GetAsyncKeyState(VK_LEFT))
- {
- player.x --;
- }
- if (GetAsyncKeyState(VK_SPACE))
- {
- if(player.strzal == false )
- {
- player.strzal = true;
- player.sx = player.x;
- player.sy = player.y;
- }
- }
- Update(0.3);
- Render();
- }
- break;
- case 50:
- for( int i = 0; i < MAPW; i ++)
- for( int j = 0; j < MAPH; j ++)
- map[i][j] = true;
- while (1)
- {
- if(status != 0)
- {
- break;
- }
- if (GetAsyncKeyState(VK_HOME))
- {
- system("CLS");
- gotoxy(15,3);
- cout << "INFO:";
- gotoxy(15,6);
- cout << "Poruszanie za pomoca Strzalek.";
- gotoxy(15,7);
- cout << "Strzal za pomoca Spacji.";
- gotoxy(15,8);
- cout << "Podczas gry przycisk 'HOME' wyswietla INFO.";
- gotoxy(15,9);
- cout << "Podczas gry przycisk 'SHIFT' pauzuje gre do nacisniecia 'ENTER'.";
- gotoxy(15,10);
- cout << "Podczas gry przycisk 'ESC' konczy prace programu.";
- odliczanie(15,12,"Powrot do gry");
- }
- if (GetAsyncKeyState(VK_ESCAPE))
- {
- exit(1);
- }
- if (GetAsyncKeyState(VK_SHIFT))
- {
- system("CLS");
- gotoxy(18,10);
- cout << "PAUZA, aby ponowic gre wcisnij ENTER";
- getch();
- while(getch() != 0x0D)
- {
- gotoxy(18,10);
- cout << "PAUZA, aby ponowic gre wcisnij ENTER";
- getch();
- }
- }
- if (GetAsyncKeyState(VK_RIGHT))
- {
- player.x ++;
- }
- if (GetAsyncKeyState(VK_LEFT))
- {
- player.x --;
- }
- if (GetAsyncKeyState(VK_SPACE))
- {
- if(player.strzal == false )
- {
- player.strzal = true;
- player.sx = player.x;
- player.sy = player.y;
- }
- }
- Update(0.5);
- Render();
- }
- break;
- case 51:
- for( int i = 0; i < MAPW; i ++)
- for( int j = 0; j < MAPH; j ++)
- map[i][j] = true;
- while (1)
- {
- if(status != 0)
- {
- break;
- }
- if (GetAsyncKeyState(VK_HOME))
- {
- system("CLS");
- gotoxy(15,3);
- cout << "INFO:";
- gotoxy(15,6);
- cout << "Poruszanie za pomoca Strzalek.";
- gotoxy(15,7);
- cout << "Strzal za pomoca Spacji.";
- gotoxy(15,8);
- cout << "Podczas gry przycisk 'HOME' wyswietla INFO.";
- gotoxy(15,9);
- cout << "Podczas gry przycisk 'SHIFT' pauzuje gre do nacisniecia 'ENTER'.";
- gotoxy(15,10);
- cout << "Podczas gry przycisk 'ESC' konczy prace programu.";
- odliczanie(15,12,"Powrot do gry");
- }
- if (GetAsyncKeyState(VK_ESCAPE))
- {
- exit(1);
- }
- if (GetAsyncKeyState(VK_SHIFT))
- {
- system("CLS");
- gotoxy(18,10);
- cout << "PAUZA, aby ponowic gre wcisnij ENTER";
- getch();
- while(getch() != 0x0D)
- {
- gotoxy(18,10);
- cout << "PAUZA, aby ponowic gre wcisnij ENTER";
- getch();
- }
- }
- if (GetAsyncKeyState(VK_RIGHT))
- {
- player.x ++;
- }
- if (GetAsyncKeyState(VK_LEFT))
- {
- player.x --;
- }
- if (GetAsyncKeyState(VK_SPACE))
- {
- if(player.strzal == false )
- {
- player.strzal = true;
- player.sx = player.x;
- player.sy = player.y;
- }
- }
- Update(0.8);
- Render();
- }
- break;
- case 52:
- for( int i = 0; i < MAPW; i ++)
- for( int j = 0; j < MAPH; j ++)
- map[i][j] = true;
- while (1)
- {
- if(status != 0)
- {
- break;
- }
- if (GetAsyncKeyState(VK_HOME))
- {
- system("CLS");
- gotoxy(15,3);
- cout << "INFO:";
- gotoxy(15,6);
- cout << "Poruszanie za pomoca Strzalek.";
- gotoxy(15,7);
- cout << "Strzal za pomoca Spacji.";
- gotoxy(15,8);
- cout << "Podczas gry przycisk 'HOME' wyswietla INFO.";
- gotoxy(15,9);
- cout << "Podczas gry przycisk 'SHIFT' pauzuje gre do nacisniecia 'ENTER'.";
- gotoxy(15,10);
- cout << "Podczas gry przycisk 'ESC' konczy prace programu.";
- odliczanie(15,12,"Powrot do gry");
- }
- if (GetAsyncKeyState(VK_ESCAPE))
- {
- exit(1);
- }
- if (GetAsyncKeyState(VK_SHIFT))
- {
- system("CLS");
- gotoxy(18,10);
- cout << "PAUZA, aby ponowic gre wcisnij ENTER";
- getch();
- while(getch() != 0x0D)
- {
- gotoxy(18,10);
- cout << "PAUZA, aby ponowic gre wcisnij ENTER";
- getch();
- }
- }
- if (GetAsyncKeyState(VK_RIGHT))
- {
- player.x ++;
- }
- if (GetAsyncKeyState(VK_LEFT))
- {
- player.x --;
- }
- if (GetAsyncKeyState(VK_SPACE))
- {
- if(player.strzal == false )
- {
- player.strzal = true;
- player.sx = player.x;
- player.sy = player.y;
- }
- }
- Update(1);
- Render();
- }
- break;
- case 53:
- main();
- break;
- }
- switch(status)
- {
- case 1:
- system("CLS");
- gotoxy(35,10);
- cout <<"Wygrana !";
- gotoxy(35,11);
- cout <<"Twoj Wynik:";
- cout << player.pkt;
- odliczanie(30,13,"Koniec gry");
- exit;
- case 2:
- system("CLS");
- gotoxy(34,10);
- cout <<"Przegrana !";
- gotoxy(34,11);
- cout <<"Twoj Wynik:";
- cout << player.pkt;
- odliczanie(30,13,"Koniec gry");
- exit;
- }
- break;
- case 50:
- system("CLS");
- gotoxy(15,3);
- cout << "INFO:";
- gotoxy(15,6);
- cout << "Poruszanie za pomoca Strzalek.";
- gotoxy(15,7);
- cout << "Strzal za pomoca Spacji.";
- gotoxy(15,8);
- cout << "Podczas gry przycisk 'HOME' wyswietla INFO.";
- gotoxy(15,9);
- cout << "Podczas gry przycisk 'SHIFT' pauzuje gre do nacisniecia 'ENTER'.";
- gotoxy(15,10);
- cout << "Podczas gry przycisk 'ESC' konczy prace programu.";
- odliczanie(15,12,"Powrot do menu");
- main();
- break;
- case 51:
- exit(1);
- return 0;
- }
- }
Add Comment
Please, Sign In to add comment