Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cstdlib>
- #include <windows.h>
- #include <time.h>
- #include <conio.h>
- #include <stdio.h>
- #include <stdlib.h>
- #include <fstream>
- #include <random>
- #include "tekstury.h"
- using namespace std;
- bool wyjscie=false;
- int ruchX, ruchY, punkt;
- int zycie=5;
- char c='o';
- int klatka_pocisku=0;
- int Xpocisku, Ypocisku;
- bool pocisk_istnieje=false;
- int zwrot_postaci=1, zwrot_pocisku; // 1-gora 2-dol 3-prawo 4-lewo
- int odswierzanie=2000;
- int klatka=0;
- void punkty()
- {
- punkt++;
- SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),10);
- wspolrzedne(6, 4);
- cout<<"Wynik: "<<punkt;
- }
- class Punkt
- {
- public:
- int pktX;
- int pktY;
- void pierwszy_punkt(int X,int Y)
- {
- pktX=X;
- pktY=Y;
- SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),5);
- wspolrzedne(pktX,pktY);
- cout<<char(158);
- }
- void nowy_punkt()
- {
- SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),5);
- srand(time(NULL));
- pktX=rand()%(szerokosc*2-4) + 6;
- pktY=rand()%(wysokosc-1) + 6;
- wspolrzedne(pktX,pktY);
- cout<<char(158);
- }
- void ruch_punktu(int n)
- {
- SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),5);
- wspolrzedne(pktX,pktY);
- cout<<" ";
- switch(n)
- {
- case 1:
- {
- if(pktY>6)
- {
- pktY--;
- wspolrzedne(pktX,pktY);
- cout<<char(158);
- }
- else
- {
- pktY++;
- wspolrzedne(pktX,pktY);
- cout<<char(158);
- }
- }
- break;
- case 2:
- {
- if(pktY<(wysokosc - 1 + 5))
- {
- pktY++;
- wspolrzedne(pktX,pktY);
- cout<<char(158);
- }
- else
- {
- pktY--;
- wspolrzedne(pktX,pktY);
- cout<<char(158);
- }
- }
- break;
- case 3:
- {
- if(pktX>6)
- {
- pktX--;
- wspolrzedne(pktX,pktY);
- cout<<char(158);
- }
- else
- {
- pktX++;
- wspolrzedne(pktX,pktY);
- cout<<char(158);
- }
- }
- break;
- case 4:
- {
- if(pktX<(szerokosc*2 - 4 + 5))
- {
- pktX++;
- wspolrzedne(pktX,pktY);
- cout<<char(158);
- }
- else
- {
- pktX--;
- wspolrzedne(pktX,pktY);
- cout<<char(158);
- }
- }
- break;
- }
- }
- void sprawdzenie()
- {
- if((pktX==Xpocisku&&pktY==Ypocisku))
- {
- punkty();
- nowy_punkt();
- pocisk_istnieje=false;
- SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),10);
- wspolrzedne(Xpocisku, Ypocisku);
- cout<<" ";
- Xpocisku=0;
- Ypocisku=0;
- }
- else if(pktX==ruchX&&pktY==ruchY)
- {
- for(int i=1;i<50;i++)
- {
- SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),10);
- wspolrzedne(ruchX,ruchY);
- cout<<" ";
- Sleep(i);
- wspolrzedne(ruchX,ruchY);
- cout<<char(254);
- }
- nowy_punkt();
- zycie--;
- SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),10);
- wspolrzedne(17, 4);
- for(int i=0;i<5;i++)
- {
- cout<<" ";
- }
- wspolrzedne(17, 4);
- for(int i=0;i<zycie;i++)
- {
- cout<<"|";
- }
- }
- }
- };
- void rysowanie_mapy_malej();
- void rysowanie_mapy_sredniej();
- void rysowanie_mapy_duzej();
- void rysowanie_mapy();
- void ruch_pocisku()
- {
- switch(zwrot_pocisku)
- {
- case 1:
- {
- SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),10);
- wspolrzedne(Xpocisku, Ypocisku);
- cout<<" ";
- Ypocisku--;
- wspolrzedne(Xpocisku, Ypocisku);
- cout<<char(193);
- }
- break;
- case 2:
- {
- SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),10);
- wspolrzedne(Xpocisku, Ypocisku);
- cout<<" ";
- Ypocisku++;
- wspolrzedne(Xpocisku, Ypocisku);
- cout<<char(194);
- }
- break;
- case 3:
- {
- SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),10);
- wspolrzedne(Xpocisku, Ypocisku);
- cout<<" ";
- Xpocisku++;
- wspolrzedne(Xpocisku, Ypocisku);
- cout<<char(195);
- }
- break;
- case 4:
- {
- SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),10);
- wspolrzedne(Xpocisku, Ypocisku);
- cout<<" ";
- Xpocisku--;
- wspolrzedne(Xpocisku, Ypocisku);
- cout<<char(180);
- }
- break;
- }
- if(Ypocisku==6||Ypocisku==wysokosc+4||Xpocisku==(szerokosc)*2+1||Xpocisku==6)
- {
- pocisk_istnieje=false;
- SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),10);
- wspolrzedne(Xpocisku, Ypocisku);
- cout<<" ";
- Xpocisku=0;
- Ypocisku=0;
- }
- }
- void ruch()
- {
- if(c == 'w')
- {
- zwrot_postaci=1;
- if(ruchY>6) ruchY--;
- }
- else if(c == 's')
- {
- zwrot_postaci=2;
- if(ruchY<(wysokosc - 1 + 5)) ruchY++;
- }
- else if(c == 'a')
- {
- zwrot_postaci=4;
- if(ruchX>6) ruchX--;
- }
- else if(c == 'd')
- {
- zwrot_postaci=3;
- if(ruchX<(szerokosc*2 - 4 + 5)) ruchX++;
- }
- else if(c == 'q')
- {
- if(pocisk_istnieje==true||(ruchX>(szerokosc)*2&&zwrot_pocisku==3)||(ruchX<8&&zwrot_pocisku==4))
- {
- cout;
- }
- else
- {
- zwrot_pocisku=zwrot_postaci;
- pocisk_istnieje=true;
- switch(zwrot_pocisku)
- {
- case 1:
- {
- Xpocisku=ruchX;
- Ypocisku=ruchY-1;
- }
- break;
- case 2:
- {
- Xpocisku=ruchX;
- Ypocisku=ruchY+1;
- }
- break;
- case 3:
- {
- Xpocisku=ruchX+1;
- Ypocisku=ruchY;
- }
- break;
- case 4:
- {
- Xpocisku=ruchX-1;
- Ypocisku=ruchY;
- }
- break;
- }
- }
- }
- else
- {
- cout;
- }
- }
- void gra()
- {
- system("cls");
- rysowanie_mapy();
- srand(time(NULL));
- ruchX=rand()%(szerokosc*2-4) + 6;
- ruchY=rand()%(wysokosc-1) + 6;
- Punkt p[ilosc_X];
- for(int i=0;i<ilosc_X;i++)
- {
- p[i].pierwszy_punkt(rand()%(szerokosc*2-4) + 6,rand()%(wysokosc-1) + 6);
- }
- SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),10);
- wspolrzedne(6, 4);
- cout<<"Wynik: "<<punkt;
- SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),10);
- wspolrzedne(17, 4);
- for(int i=0;i<zycie;i++)
- {
- cout<<"|";
- }
- random_device rd; // non-deterministic generator
- mt19937 gen(rd()); // to seed mersenne twister.
- uniform_int_distribution<> dist(1,4);
- while(c != char(13))
- {
- klatka++;
- klatka_pocisku++;
- if(zycie==0)
- {
- wyjscie=true;
- break;
- }
- if(klatka_pocisku==150)
- {
- klatka_pocisku=0;
- if(pocisk_istnieje==true)
- {
- ruch_pocisku();
- }
- }
- for(int i=0;i<ilosc_X;i++)
- {
- p[i].sprawdzenie();
- }
- SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),10);
- wspolrzedne(ruchX,ruchY);
- cout<<char(254);
- if(klatka==odswierzanie)
- {
- klatka=0;
- for(int i=0;i<ilosc_X;i++)
- {
- p[i].ruch_punktu(dist(gen));
- }
- }
- if (_kbhit()==1)
- {
- c=getch();
- wspolrzedne(ruchX,ruchY);
- cout<<" ";
- ruch();
- }
- }
- system("cls");
- }
- void ustawienia()
- {
- string ustawienia_wybor;
- int wybor_trudnosci;
- system("cls");
- cout<<"USTAWIENIA"<<endl;
- cout<<"1. Zmien rodzaj mapy"<<endl;
- cout<<"2. Zmien poziom trudnosci"<<endl;
- cout<<"3. Wyjdz do menu"<<endl;
- cout<<"> ";
- cin>>ustawienia_wybor;
- if(ustawienia_wybor == "1")
- {
- ustawienia_wybor = "";
- system("cls");
- cout<<"Wybierz rozmiar mapy!"<<endl;
- cout<<"1.Mapa mala"<<endl;
- cout<<"2.Mapa srednia"<<endl;
- cout<<"3.Mapa duza"<<endl;
- cin>>wybor_mapy;
- if(wybor_mapy>3||wybor_mapy<1)
- {
- cout<<endl<<"Nie ma takiej opcji!"<<endl;
- Sleep(500);
- system("cls");
- ustawienia();
- }
- cout<<endl<<"Pomyslnie zmieniono rodzaj mapy!"<<endl;
- Sleep(500);
- ustawienia();
- }
- else if(ustawienia_wybor=="2")
- {
- ustawienia_wybor="";
- system("cls");
- cout<<"1.Latwy"<<endl;
- cout<<"2.Sredni"<<endl;
- cout<<"3.Trudny"<<endl;
- cin>>wybor_trudnosci;
- switch(wybor_trudnosci)
- {
- case 1:
- {
- odswierzanie=3000;
- }
- break;
- case 2:
- {
- odswierzanie=2000;
- }
- break;
- case 3:
- {
- odswierzanie=1000;
- }
- break;
- default:
- {
- cout<<endl<<"Nie ma takiej opcji!"<<endl;
- Sleep(500);
- system("cls");
- ustawienia();
- }
- break;
- }
- }
- else if(ustawienia_wybor == "3")
- {
- ustawienia_wybor = "";
- system("cls");
- }
- else
- {
- ustawienia_wybor = "";
- cout<<endl<<"Nie ma takiej opcji!"<<endl;
- Sleep(500);
- system("cls");
- ustawienia();
- }
- }
- void instrukcja()
- {
- string instrukcja_wybor;
- system("cls");
- cout<<"INSTRUKCJA"<<endl;
- cout<<"1. Ruch"<<endl;
- cout<<"2. Wyjdz"<<endl;
- cout<<"> ";
- cin>>instrukcja_wybor;
- if(instrukcja_wybor == "1")
- {
- system("cls");
- cout<<"Wyjscie z gry do menu - 'ENTER'"<<endl;
- cout<<"Gora - 'W'"<<endl;
- cout<<"Dol - 'S'"<<endl;
- cout<<"Lewo - 'A'"<<endl;
- cout<<"Prawo - 'D'"<<endl;
- cout<<endl;
- cout<<"Kliknij wybrany przycisk aby wyjsc do menu"<<endl;
- getch();
- system("cls");
- }
- else if(instrukcja_wybor == "2")
- {
- instrukcja_wybor = "";
- system("cls");
- }
- else
- {
- instrukcja_wybor = "";
- cout<<endl<<"Nie ma takiej opcji!"<<endl;
- Sleep(500);
- system("cls");
- instrukcja();
- }
- }
- int menu()
- {
- ustaw_okno(114,44);
- system("cls");
- int menu_wybor;
- int wybor=0;
- c=char(25);
- SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),4);
- wspolrzedne(52,15);
- cout<<"WITAJ GRACZU!";
- SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),6);
- wspolrzedne(54,17);
- cout<<"1. Gra";
- wspolrzedne(52,19);
- cout<<"2. Instrukcja";
- wspolrzedne(52,21);
- cout<<"3. Ustawienia";
- wspolrzedne(53,23);
- cout<<"4. Wyjdz";
- while(c!=char(13))
- {
- SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),5);
- wspolrzedne(45,17+wybor);
- cout<<"->";
- wspolrzedne(70,17+wybor);
- cout<<"<-";
- wspolrzedne(0,0);
- c=getch();
- wspolrzedne(45,17+wybor);
- cout<<" ";
- wspolrzedne(70,17+wybor);
- cout<<" ";
- if (c=='w')//idzie do gory
- {
- if (wybor>0)
- {
- wybor-=2;
- }
- }
- if (c=='s')//idzie do dolu
- {
- if (wybor<6)
- {
- wybor+=2;
- }
- }
- }
- menu_wybor=wybor;
- c=char(25);
- if(menu_wybor == 0) gra();
- else if(menu_wybor == 2) instrukcja();
- else if(menu_wybor == 4) ustawienia();
- else if(menu_wybor == 6)
- {
- system("cls");
- return 0;
- }
- else
- {
- cout<<endl<<"Nie ma takiej opcji!"<<endl;
- Sleep(500);
- system("cls");
- menu();
- }
- if(wyjscie==true)
- {
- return 0;
- }
- else
- {
- menu();
- }
- }
- int main()
- {
- menu();
- return 0;
- }
- --------------------------------------------------------------------------------------------------------------------------------------
- tu naglowkowy plik "tekstury.h"
- #include <iostream>
- #include <cstdlib>
- #include <windows.h>
- #include <time.h>
- #include <conio.h>
- #include <stdio.h>
- #include <stdlib.h>
- #include <fstream>
- using namespace std;
- int szerokosc=25, wysokosc=25;
- int wybor_mapy=2;
- int ilosc_X=2;
- void wspolrzedne(int x,int y)
- {
- COORD coord;
- coord.X=x;
- coord.Y=y;
- SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);
- }
- void ustaw_okno(int szerokosc, int wysokosc)
- {
- _COORD coord;
- coord.X = szerokosc;
- coord.Y = wysokosc;
- _SMALL_RECT Rect;
- Rect.Top = 0;
- Rect.Left = 0;
- Rect.Bottom = wysokosc - 1;
- Rect.Right = szerokosc - 1;
- HANDLE Handle = GetStdHandle(STD_OUTPUT_HANDLE); // Get Handle
- SetConsoleScreenBufferSize(Handle, coord); // Set Buffer Size
- SetConsoleWindowInfo(Handle, TRUE, &Rect); // Set Window Size
- }
- void rysowanie_mapy_malej()
- {
- ilosc_X=1;
- szerokosc=16;
- wysokosc=15;
- ustaw_okno((szerokosc+4)*2,wysokosc+10);
- //Panel górny
- wspolrzedne(5,3);
- cout<<char(201);
- for(int a=3;a<=szerokosc;a++) cout<<char(205)<<char(205);
- cout<<char(187);
- for(int b=2;b<=wysokosc;b++)
- {
- wspolrzedne(5,4);
- cout<<char(186);
- for(int c=3;c<=szerokosc;c++) cout<<" ";
- cout<<char(186)<<endl;
- }
- //Œciana górna
- wspolrzedne(5,5);
- cout<<char(204);
- for(int a=3;a<=szerokosc;a++) cout<<char(205)<<char(205);
- cout<<char(185)<<endl;
- //Œciany boczne
- for(int b=2;b<=wysokosc;b++)
- {
- wspolrzedne(5,4+b);
- cout<<char(186);
- for(int c=3;c<=szerokosc;c++) cout<<" ";
- cout<<char(186)<<endl;
- }
- //Œciana dolna
- wspolrzedne(5,wysokosc+5);
- cout<<char(200);
- for(int a=3;a<=szerokosc;a++)
- cout<<char(205)<<char(205);
- cout<<char(188)<<endl;
- SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),10);
- wspolrzedne(14,22);
- cout<<"Wyjdz: ENTER";
- }
- void rysowanie_mapy_sredniej()
- {
- ilosc_X=2;
- szerokosc=25;
- wysokosc=25;
- ustaw_okno((szerokosc+4)*2,wysokosc+10);
- //Panel górny
- wspolrzedne(5,3);
- cout<<char(201);
- for(int a=3;a<=szerokosc;a++) cout<<char(205)<<char(205);
- cout<<char(187);
- for(int b=2;b<=wysokosc;b++)
- {
- wspolrzedne(5,4);
- cout<<char(186);
- for(int c=3;c<=szerokosc;c++) cout<<" ";
- cout<<char(186)<<endl;
- }
- //Œciana górna
- wspolrzedne(5,5);
- cout<<char(204);
- for(int a=3;a<=szerokosc;a++) cout<<char(205)<<char(205);
- cout<<char(185)<<endl;
- //Œciany boczne
- for(int b=2;b<=wysokosc;b++)
- {
- wspolrzedne(5,4+b);
- cout<<char(186);
- for(int c=3;c<=szerokosc;c++) cout<<" ";
- cout<<char(186)<<endl;
- }
- //Œciana dolna
- wspolrzedne(5,wysokosc+5);
- cout<<char(200);
- for(int a=3;a<=szerokosc;a++)
- cout<<char(205)<<char(205);
- cout<<char(188)<<endl;
- SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),10);
- wspolrzedne(szerokosc*2-12,4);
- cout<<"Wyjdz = ENTER";
- }
- void rysowanie_mapy_duzej()
- {
- ilosc_X=3;
- szerokosc=35;
- wysokosc=35;
- ustaw_okno((szerokosc+4)*2,wysokosc+10);
- //Panel górny
- wspolrzedne(5,3);
- cout<<char(201);
- for(int a=3;a<=szerokosc;a++) cout<<char(205)<<char(205);
- cout<<char(187);
- for(int b=2;b<=wysokosc;b++)
- {
- wspolrzedne(5,4);
- cout<<char(186);
- for(int c=3;c<=szerokosc;c++) cout<<" ";
- cout<<char(186)<<endl;
- }
- //Œciana górna
- wspolrzedne(5,5);
- cout<<char(204);
- for(int a=3;a<=szerokosc;a++) cout<<char(205)<<char(205);
- cout<<char(185)<<endl;
- //Œciany boczne
- for(int b=2;b<=wysokosc;b++)
- {
- wspolrzedne(5,4+b);
- cout<<char(186);
- for(int c=3;c<=szerokosc;c++) cout<<" ";
- cout<<char(186)<<endl;
- }
- //Œciana dolna
- wspolrzedne(5,wysokosc+5);
- cout<<char(200);
- for(int a=3;a<=szerokosc;a++)
- cout<<char(205)<<char(205);
- cout<<char(188)<<endl;
- SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),10);
- wspolrzedne(33,41);
- cout<<"Wyjdz: ENTER";
- }
- void rysowanie_mapy()
- {
- switch(wybor_mapy)
- {
- case 1:
- {
- rysowanie_mapy_malej();
- }
- break;
- case 2:
- {
- rysowanie_mapy_sredniej();
- }
- break;
- case 3:
- {
- rysowanie_mapy_duzej();
- }
- break;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement