Sanady

Golf game.

Feb 27th, 2018
310
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.26 KB | None | 0 0
  1. /*
  2. Projekt: Golfova hra
  3. Vypracoval: Ivan Rener
  4. Datum prace: 27.02.2018
  5. */
  6.  
  7. /*================================================================
  8. -->> Includes
  9. ================================================================*/
  10.  
  11. #include <stdio.h>
  12. #include <stdlib.h>
  13. #include <math.h>
  14. #include <time.h>
  15.  
  16. /*================================================================
  17. -->> Defines
  18. ================================================================*/
  19.  
  20. #define PI 3.14159265359
  21.  
  22. /*================================================================
  23. -->> Custom functions
  24. ================================================================*/
  25.  
  26. double Vzdialenost(int lx, int ly, int jx, int jy)
  27. {
  28.     double v;
  29.     v = sqrt(pow((jx - lx), 2) + pow((jy - ly), 2));
  30.     return v;
  31. }
  32.  
  33. int Nepresnost_N1(int S)
  34. {
  35.     int dolnaHranica, hornaHranica, Vysledok;
  36.     dolnaHranica = ( - (pow(S, 2) / (sqrt(S) + pow(S, 2) + 100))) * 45;
  37.     hornaHranica = (pow(S, 2) / (sqrt(S) + pow(S, 2) + 100)) * 45;
  38.     Vysledok = rand() % (hornaHranica - dolnaHranica + 1) + dolnaHranica;
  39.     return Vysledok;
  40. }
  41.  
  42. int Nepresnost_N2(int S)
  43. {
  44.     int dolnaHranica, hornaHranica, Vysledok;
  45.     dolnaHranica = - (S / 10);
  46.     hornaHranica = S / 10;
  47.     Vysledok = rand() % (hornaHranica - dolnaHranica + 1) + dolnaHranica;
  48.     return Vysledok;
  49. }
  50.  
  51. int PoziciaX(int x1, int y1, int S, int N1, int N2)
  52. {
  53.     int u, V, VyslednaOs; // u - Uhol, V - Vzdialenost lopticky od jamky, VyslednaOs - vysledok vypoctu.
  54.     V = Vzdialenost(x1, y1, 0, 0);
  55.     u = atan2(x1, y1) + S + N1;
  56.     V = V - (S + N2);
  57.     VyslednaOs = V * cos(u);
  58.     return VyslednaOs;
  59. }
  60.  
  61. int PoziciaY(int x1, int y1, int S, int N1, int N2)
  62. {
  63.     int u, V, VyslednaOs; // u - Uhol, V - Vzdialenost lopticky od jamky, VyslednaOs - vysledok vypoctu.
  64.     V = Vzdialenost(x1, y1, 0, 0);
  65.     u = atan2(x1, y1) + S + N1;
  66.     V = V - (S + N2);
  67.     VyslednaOs = V * sin(u);
  68.     return VyslednaOs;
  69. }
  70.  
  71. /*================================================================
  72. -->> Main functions
  73. ================================================================*/
  74. int main()
  75. {
  76.     int loptaX, loptaY, S, odpali = 0;
  77.     double VzdialenostLopty = 0;
  78.     srand(time(NULL));
  79.     do
  80.     {
  81.         loptaX = rand() % (2 - 60 + 1) + 2;
  82.         printf("X suradnica: %d\n", loptaX);
  83.         loptaY = rand() % (2 - 60 + 1) + 2;
  84.         printf("Y suradnica: %d\n", loptaY);
  85.         VzdialenostLopty = Vzdialenost(loptaX, loptaY, 0, 0);
  86.         printf("Vzdialenost: %lf\n\n", VzdialenostLopty);
  87.     }
  88.     while(VzdialenostLopty < 10.0);
  89.    
  90.     while(1)
  91.     {
  92.         int tmpX, tmpY = 0;
  93.         printf("Zadajte silu uderu: ");
  94.         scanf("%d", &S);
  95.        
  96.         tmpX = loptaX;
  97.         tmpY = loptaY;
  98.        
  99.         loptaX = PoziciaX(loptaX, loptaY, S, Nepresnost_N1(S), Nepresnost_N2(S));
  100.         loptaY = PoziciaY(tmpX, tmpY, S, Nepresnost_N1(S), Nepresnost_N2(S));
  101.                    
  102.         printf("Nova pozicia X osi: %d\n", loptaX);
  103.         printf("Nova Pozicia Y osi: %d\n", loptaY);
  104.         printf("Nova vzdialenost: %lf\n\n", Vzdialenost(loptaX, loptaY, 0, 0));
  105.         odpali ++;
  106.        
  107.         if(Vzdialenost(loptaX, loptaY, 0, 0) <= 2.0 && Vzdialenost(loptaX, loptaY, 0, 0) >= -2.0)
  108.         {
  109.             printf("\t| GAME OVER |\n");
  110.             printf("| Pocet odpalov: %d |", odpali);
  111.             break;
  112.         }  
  113.     }
  114.     return 0;
  115. }
  116. /*================================================================
  117. -->> End of code
  118. ================================================================*/
Advertisement
Add Comment
Please, Sign In to add comment