Advertisement
Guest User

Untitled

a guest
Nov 21st, 2019
132
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.35 KB | None | 0 0
  1. #include <iostream>
  2. #include <conio.h>
  3. #include <windows.h>
  4.  
  5. using namespace std;
  6.  
  7. void Postavka();
  8. void Crtanje();
  9. void Unos();
  10. void Logika();
  11.  
  12. bool krajIgre;
  13. const int width = 20;
  14. const int height = 20;
  15. int x, y, hranaX, hranaY, rezultat;
  16. int repX[100], repY[100];
  17. int rep;
  18. enum Smjer { STANI = 0, LIJEVO, DESNO, GORE, DOLJE};
  19. Smjer smjer;
  20.  
  21. int main()
  22. {
  23.     Postavka();
  24.     while (!krajIgre) {
  25.         Crtanje();
  26.         Unos();
  27.         Logika();
  28.         Sleep(10);
  29.     }
  30.     return 0;
  31. }
  32.  
  33. void Postavka(){
  34.     krajIgre = false;
  35.     smjer = STANI;
  36.     x = width / 2;
  37.     y = height / 2;
  38.     hranaX = rand() % width;
  39.     hranaY = rand() % height;
  40.     rezultat = 0;
  41. }
  42.  
  43. void Crtanje(){
  44.     system("cls");
  45.     for (int i = 0; i < width+2; i++)
  46.         cout << "#";
  47.     cout << endl;
  48.  
  49.     for (int i = 0; i < height; i++){
  50.         for (int j = 0; j < width; j++){
  51.             if (j == 0) cout << "#";
  52.             if (i == y && j == x) cout << "O";
  53.             else if (i == hranaY && j == hranaX)cout << "F";
  54.             else{
  55.                 bool print = false;
  56.                 for (int k = 0; k < rep; k++){
  57.                     if (repX[k] == j && repY[k] == i){
  58.                         cout << "o";
  59.                         print = true;
  60.                     }
  61.                 }
  62.                 if (!print) cout << " ";
  63.             }
  64.             if (j == width - 1) cout << "#";
  65.         }
  66.         cout << endl;
  67.     }
  68.  
  69.     for (int i = 0; i < width+2; i++) cout << "#";
  70.     cout << endl;
  71.     cout << "Rezultat:" << rezultat << endl;
  72. }
  73. void Unos(){
  74.    
  75.     if (_kbhit()){
  76.        
  77.         switch (_getch()) {
  78.         case 'a':
  79.             smjer = LIJEVO;
  80.             break;
  81.         case 'd':
  82.             smjer = DESNO;
  83.             break;
  84.         case 'w':
  85.             smjer = GORE;
  86.             break;
  87.         case 's':
  88.             smjer = DOLJE;
  89.             break;
  90.         case 'x':
  91.             krajIgre = true;
  92.             break;
  93.         }
  94.     }
  95. }
  96. void Logika(){
  97.    
  98.     int prevX = repX[0];
  99.     int prevY = repY[0];
  100.     int prev2X, prev2Y;
  101.     repX[0] = x;
  102.     repY[0] = y;
  103.    
  104.     for (int i = 1; i < rep; i++){
  105.         prev2X = repX[i];
  106.         prev2Y = repY[i];
  107.         repX[i] = prevX;
  108.         repY[i] = prevY;
  109.         prevX = prev2X;
  110.         prevY = prev2Y;
  111.     }
  112.    
  113.     switch (smjer){
  114.     case LIJEVO:
  115.         x--;
  116.         break;
  117.     case DESNO:
  118.         x++;
  119.         break;
  120.     case GORE:
  121.         y--;
  122.         break;
  123.     case DOLJE:
  124.         y++;
  125.         break;
  126.     default:
  127.         break;
  128.     }
  129.    
  130.     if (x >= width) x = 0; else if (x < 0) x = width - 1;
  131.     if (y >= height) y = 0; else if (y < 0) y = height - 1;
  132.  
  133.     for (int i = 0; i < rep; i++) if (repX[i] == x && repY[i] == y) krajIgre = true;
  134.  
  135.     if (x == hranaX && y == hranaY){
  136.         rezultat += 10;
  137.         hranaX = rand() % width;
  138.         hranaY = rand() % height;
  139.         rep++;
  140.     }
  141. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement