Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <conio.h>
- #include <Windows.h>
- using namespace std;
- bool koniecGry;
- const int szerokosc = 20;
- const int wysokosc = 20;
- int xWeza, yWeza, owocX, owocY, wynik;
- int xOgon[100], yOgon[100];
- //dlugosc ogona
- int dlugoscOgona;
- enum kierunek { STOP = 0, LEWO, PRAWO, GORA, DOL };
- kierunek kWeza;
- void konfiguracja()
- {
- koniecGry = false;
- kWeza = STOP;
- xWeza = szerokosc / 2;
- yWeza = wysokosc / 2;
- owocX = rand() % szerokosc;
- owocY = rand() % wysokosc;
- wynik = 0;
- }
- void rysuj()
- {
- system("cls");
- //gorna sciana
- for (int i = 0; i < szerokosc+2; i++)
- cout << "#";
- cout << endl;
- //boczne sciany
- for (int i = 0; i < wysokosc; i++)
- {
- for (int j = 0; j < szerokosc; j++)
- {
- if (j == 0)
- cout << "#";
- if (i == yWeza && j == xWeza)
- cout << "O";
- else if (i == owocY && j == owocX)
- cout << "F";
- else
- {
- bool wyswietl = false;
- for (int k = 0; k < dlugoscOgona; k++)
- {
- if (xOgon[k] == j && yOgon[k] == i)
- {
- cout << "o";
- wyswietl = true;
- }
- }
- if (!wyswietl)
- cout << " ";
- }
- //cout << " ";
- if (j == szerokosc - 1)
- cout << "#";
- }
- cout << endl;
- }
- //dolna sciana
- for (int i = 0; i < szerokosc+2; i++)
- cout << "#";
- cout << endl;
- cout << "Wynik: " << wynik << endl;
- }
- void wejscie()
- {
- if (_kbhit())
- {
- switch (_getch())
- {
- case 'a':
- kWeza = LEWO;
- break;
- case 'd':
- kWeza = PRAWO;
- break;
- case 'w':
- kWeza = GORA;
- break;
- case 's':
- kWeza = DOL;
- break;
- case 'x':
- koniecGry = true;
- break;
- default:
- break;
- }
- }
- }
- void logika()
- {
- int poprzedniX = xOgon[0];
- int poprzedniY = yOgon[0];
- int poprzedni2X, poprzedni2Y;
- xOgon[0] = xWeza;
- yOgon[0] = yWeza;
- for (int i = 1; i < dlugoscOgona; i++)
- {
- poprzedni2X = xOgon[i];
- poprzedni2Y = yOgon[i];
- xOgon[i] = poprzedniX;
- yOgon[i] = poprzedniY;
- poprzedniX = poprzedni2X;
- poprzedniY = poprzedni2Y;
- }
- switch (kWeza)
- {
- case LEWO:
- xWeza--;
- break;
- case PRAWO:
- xWeza++;
- break;
- case GORA:
- yWeza--;
- break;
- case DOL:
- yWeza++;
- break;
- default:
- break;
- }
- if (xWeza > szerokosc || xWeza < 0 || yWeza > wysokosc || yWeza < 0)
- koniecGry = true;
- for (int i = 0; i < dlugoscOgona; i++)
- if (xOgon[i] == xWeza && yOgon[i] == yWeza)
- koniecGry = true;
- if (xWeza == owocX && yWeza == owocY)
- {
- wynik = wynik + 10;
- owocX = rand() % szerokosc;
- owocY = rand() % wysokosc;
- dlugoscOgona++;
- }
- }
- int main()
- {
- konfiguracja();
- while (!koniecGry)
- {
- rysuj();
- wejscie();
- logika();
- //ustawianie szybkosci;
- Sleep(50);
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement