Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Projekt: Golfova hra
- Vypracoval: Ivan Rener
- Datum prace: 27.02.2018
- */
- /*================================================================
- -->> Includes
- ================================================================*/
- #include <stdio.h>
- #include <stdlib.h>
- #include <math.h>
- #include <time.h>
- /*================================================================
- -->> Defines
- ================================================================*/
- #define PI 3.14159265359
- /*================================================================
- -->> Custom functions
- ================================================================*/
- double Vzdialenost(int lx, int ly, int jx, int jy)
- {
- double v;
- v = sqrt(pow((jx - lx), 2) + pow((jy - ly), 2));
- return v;
- }
- int Nepresnost_N1(int S)
- {
- int dolnaHranica, hornaHranica, Vysledok;
- dolnaHranica = ( - (pow(S, 2) / (sqrt(S) + pow(S, 2) + 100))) * 45;
- hornaHranica = (pow(S, 2) / (sqrt(S) + pow(S, 2) + 100)) * 45;
- Vysledok = rand() % (hornaHranica - dolnaHranica + 1) + dolnaHranica;
- return Vysledok;
- }
- int Nepresnost_N2(int S)
- {
- int dolnaHranica, hornaHranica, Vysledok;
- dolnaHranica = - (S / 10);
- hornaHranica = S / 10;
- Vysledok = rand() % (hornaHranica - dolnaHranica + 1) + dolnaHranica;
- return Vysledok;
- }
- int PoziciaX(int x1, int y1, int S, int N1, int N2)
- {
- int u, V, VyslednaOs; // u - Uhol, V - Vzdialenost lopticky od jamky, VyslednaOs - vysledok vypoctu.
- V = Vzdialenost(x1, y1, 0, 0);
- u = atan2(x1, y1) + S + N1;
- V = V - (S + N2);
- VyslednaOs = V * cos(u);
- return VyslednaOs;
- }
- int PoziciaY(int x1, int y1, int S, int N1, int N2)
- {
- int u, V, VyslednaOs; // u - Uhol, V - Vzdialenost lopticky od jamky, VyslednaOs - vysledok vypoctu.
- V = Vzdialenost(x1, y1, 0, 0);
- u = atan2(x1, y1) + S + N1;
- V = V - (S + N2);
- VyslednaOs = V * sin(u);
- return VyslednaOs;
- }
- /*================================================================
- -->> Main functions
- ================================================================*/
- int main()
- {
- int loptaX, loptaY, S, odpali = 0;
- double VzdialenostLopty = 0;
- srand(time(NULL));
- do
- {
- loptaX = rand() % (2 - 60 + 1) + 2;
- printf("X suradnica: %d\n", loptaX);
- loptaY = rand() % (2 - 60 + 1) + 2;
- printf("Y suradnica: %d\n", loptaY);
- VzdialenostLopty = Vzdialenost(loptaX, loptaY, 0, 0);
- printf("Vzdialenost: %lf\n\n", VzdialenostLopty);
- }
- while(VzdialenostLopty < 10.0);
- while(1)
- {
- int tmpX, tmpY = 0;
- printf("Zadajte silu uderu: ");
- scanf("%d", &S);
- tmpX = loptaX;
- tmpY = loptaY;
- loptaX = PoziciaX(loptaX, loptaY, S, Nepresnost_N1(S), Nepresnost_N2(S));
- loptaY = PoziciaY(tmpX, tmpY, S, Nepresnost_N1(S), Nepresnost_N2(S));
- printf("Nova pozicia X osi: %d\n", loptaX);
- printf("Nova Pozicia Y osi: %d\n", loptaY);
- printf("Nova vzdialenost: %lf\n\n", Vzdialenost(loptaX, loptaY, 0, 0));
- odpali ++;
- if(Vzdialenost(loptaX, loptaY, 0, 0) <= 2.0 && Vzdialenost(loptaX, loptaY, 0, 0) >= -2.0)
- {
- printf("\t| GAME OVER |\n");
- printf("| Pocet odpalov: %d |", odpali);
- break;
- }
- }
- return 0;
- }
- /*================================================================
- -->> End of code
- ================================================================*/
Advertisement
Add Comment
Please, Sign In to add comment