Advertisement
LazySenpai

Arrow 2.0

Mar 26th, 2017
108
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.30 KB | None | 0 0
  1. #include <iostream>
  2. #include <ctime>
  3. #include <cstdlib>
  4. #include <conio.h>
  5. #include <windows.h>
  6.  
  7. using std::cout;
  8. using std::cin;
  9.  
  10. int main()
  11. {
  12.     srand(time(NULL));
  13.     cout << "Welcome to the \"Arrow\".\n"
  14.          << "In this game to move you will have to use w,a,s,d\n"
  15.          << "Have fun!";
  16.  
  17.     char board[20][7],key;
  18.     int x=3,y=5, score=0, time=1000;
  19.     //board - tablica znakow, plansza gry
  20.     //x, y zmienne calkowite oznaczaja pozycje strzalki
  21.     //score - punktacja
  22.  
  23.     //wypelnienie ramka i ustawienie strzalki
  24.     for(int i=0; i<20; i++)
  25.     {
  26.         for(int j=0; j<7; j++)
  27.         {
  28.             //wypelnienie bokow
  29.             if(j==0||j==6)
  30.             {
  31.                 board[i][j]=char(196);
  32.             }
  33.             else if(i==0||i==19)
  34.             {
  35.                 board[i][j]=char(179);
  36.             }
  37.             else
  38.                 board[i][j]=' ';
  39.  
  40.             //Wypelnienie rogow
  41.             if(j==0&&i==0)
  42.             {
  43.                 board[i][j]=char(218);
  44.             }
  45.             else if(j==0&&i==19)
  46.             {
  47.                 board[i][j]=char(191);
  48.             }
  49.             else if(j==6&&i==0)
  50.             {
  51.                 board[i][j]=char(192);
  52.             }
  53.             else if(j==6&&i==19)
  54.             {
  55.                 board[i][j]=char(217);
  56.             }
  57.         }
  58.     }
  59.     board[x][y]='>';
  60.  
  61.     getch();
  62.     system("cls");
  63.  
  64.     for(int round=1;;round++)
  65.     {
  66.         //poruszanie sie strzalka
  67.         if(kbhit()==1)
  68.         {
  69.             key=getch();
  70.             if(key=='w')
  71.             {
  72.                 if(board[x][y-1]!=char(196))
  73.                 {
  74.                     if(board[x][y-1]=='X')
  75.                         break;
  76.                     board[x][y]=' ';
  77.                     y--;
  78.                 }
  79.             }
  80.             else if(key=='s')
  81.             {
  82.                 if(board[x][y+1]!=char(196))
  83.                 {
  84.                     if(board[x][y+1]=='X')
  85.                         break;
  86.                     board[x][y]=' ';
  87.                     y++;
  88.                 }
  89.             }
  90.             else if(key=='d')
  91.             {
  92.                 if(board[x+1][y]!=char(179))
  93.                 {
  94.                     if(board[x+1][y]=='X')
  95.                         break;
  96.                     board[x][y]=' ';
  97.                     x++;
  98.                 }
  99.             }
  100.             else if(key=='a')
  101.             {
  102.                 if(board[x-1][y]!=char(179))
  103.                 {
  104.                     if(board[x-1][y]=='X')
  105.                         break;
  106.                     board[x][y]=' ';
  107.                     x--;
  108.                 }
  109.             }
  110.         }
  111.  
  112.         system("cls");          //wyczyszczenie ekranu
  113.         board[x][y]='>';        //ustawienie strzalki
  114.         score++;                //dodanie punktu
  115.         if(time<=500)           //przyspieszenie do momentu az czas nie bedzie mniejszy, rowny 500
  116.             time-=10;
  117.  
  118.         //wyswietlenie na ekranie tablicy
  119.         for(int j=0; j<7; j++)
  120.         {
  121.             for(int i=0; i<20; i++)
  122.             {
  123.                 cout << board[i][j];
  124.             }
  125.             cout << "\n";
  126.         }
  127.  
  128.         //wygenerowanie przeszkod
  129.         if(round%5==0)
  130.         {
  131.             for(int i=0; i<4; i++)
  132.             {
  133.                 board[18][rand()%5+1]='X';
  134.             }
  135.         }
  136.  
  137.         //poruszanie sie przeszkod (tworzy efekt poruszania sie naszej strzalki)
  138.         for(int j=0; j<7; j++)
  139.         {
  140.             for(int i=0; i<20; i++)
  141.             {
  142.                 if(board[i-1][j]==char(179))
  143.                 {
  144.                     board[i][j]=' ';
  145.                 }
  146.                 else if(board[i][j]=='X')
  147.                 {
  148.                     if(board[i][j-1]=='>')
  149.                         break;
  150.                     else
  151.                     {
  152.                         board[i][j]=' ';
  153.                         board[i-1][j]='X';
  154.                     }          
  155.                 }
  156.             }
  157.         }
  158.  
  159.         Sleep(time);            //odczekanie wyznaczonego czasu
  160.  
  161.         //Instrukcja w przypadku kolizji
  162.         if(board[x+1][y]=='X')
  163.             break;
  164.     }
  165.  
  166.     cout << "GAME OVER!!!\n"
  167.          << "Your score : " << score
  168.          << "\nThank you for playing :>";  
  169.  
  170.     getch();
  171.     getch();
  172. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement