Advertisement
Guest User

pokemon

a guest
Oct 23rd, 2017
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.34 KB | None | 0 0
  1. #include <iostream>
  2. using namespace std;
  3. /*.
  4. 2. Zasymuluje poszukiwanie i próbe złapania Pokémona w nastepujacy sposób:
  5. 1) Po kazdym przebytym kilometrze przy pomocy funkcji rand() wyznaczamy liczbe z przedziału [0, 0.8).
  6. 2) Dodajemy do niej aktualny modyfikator szansy spotkania stworka.
  7. 3) Otrzymana wartosc jest szansa pojawienia sie Pokémona. Jesli wynosi ona co najmniej 0.75, to
  8. przyjmujemy, ze mamy mozliwosc podjecia próby złapania go. W przeciwnym przypadku zwiekszamy
  9. aktualny modyfikator szansy spotkania potwora i wracamy do punktu 1).
  10. 4) Jesli pojawił nam sie Pokémon (otrzymalismy wartosc równa co najmniej 0.75), to próbujemy go
  11. złapac rzucajac w niego kolejnymi Poké Ballami, gdzie przy pomocy funkcji rand() (wynik funkcji
  12. przeskalowany do liczby z przedziału [0, 1)) okreslamy czy stworek złapał sie (wartosc co najmniej równa
  13. 0.85), uciekł (wartosc co najwyzej równa 0.1) czy wyskoczył z rzuconego Poké Balla (w przeciwnym
  14. przypadku). Jesli Pokémon wyskoczył z Poké Balla (ale nie uciekł), to tracimy owy przedmiot i
  15. próbujemy go złapac kolejnym Poké Ballem. Natomiast w przypadku złapania lub ucieczki potwora
  16. program powinien zakonczyc działanie wypisujac stosowne komunikaty.
  17. 3. Poda liczbe przebytych kilometrów do pojawienia sie poszukiwanego Pokémona, liczbe zuzytych Poké
  18. Balli i informacje czy udało nam sie go złapac czy tez uciekł.
  19. Zakładamy, ze Pokémon musi sie pojawic najpózniej podczas ostatniego kilometra podrózy oraz ze jesli
  20. zuzyjemy wszystkie Poké Balle, to Pokémon nam uciekł. Aktualny modyfikator szansy spotkania stworka na
  21. starcie jest równy 0, a ziarno generatora powinno byc ustawione na liczbe posiadanych Poké Balli.*/
  22.  
  23. int main()
  24. {
  25.  
  26. int pokeball, maxkm, liczbakm = 1, zuzyto;
  27. double szansa, liczba, aktszansa, x = 0;
  28. cout << "Wprowadz ilosc pokeballi:";
  29. cin >> pokeball;
  30. cout << "Wprowadz maksymalna ilosc kilometrow:";
  31. cin >> maxkm;
  32. cout << "Wprowadz przyrost szansy:";
  33. cin >> szansa;
  34. cout << endl;
  35. if (pokeball > 50 || pokeball < 10 || maxkm < 15 || maxkm>20 || szansa<0 || szansa>0.01)
  36. {
  37. cout << "Bledne dane." << endl;
  38. system("pause");
  39. exit(1);
  40. }
  41. srand(pokeball);
  42. aktszansa = szansa;
  43. zuzyto = pokeball;
  44. for (int i = 1; i < maxkm; i++)
  45. {
  46. //srand(pokeball);
  47. liczba = (double(rand()) / double(RAND_MAX)) * 0, 8 + aktszansa;
  48.  
  49.  
  50. if (liczba >= 0, 75)
  51. {
  52. cout << "Spotkales pokemona. Sprobuj go zlapac." << endl;
  53. while (pokeball > 0)
  54. {
  55. //srand();
  56. liczba = (double(rand()) / double(RAND_MAX));
  57. cout << liczba << endl;
  58.  
  59. if (liczba <= 0.1)
  60. {
  61. x = 0;
  62. cout << "Pokemon uciekl :(" << endl;
  63. pokeball--;
  64. break;
  65. }
  66. else if (liczba >= 0.85)
  67. {
  68. x = 0;
  69. cout << "zlapales go" << endl;
  70. pokeball--;
  71. break;
  72. }
  73. else
  74. {
  75. cout << "Wymknal sie.\n Sprobuj jeszcze raz." << endl;
  76. }
  77.  
  78. pokeball -= 1;
  79.  
  80. if (pokeball == 0)
  81. {
  82. cout << "Skonczyly ci sie pokeballe" << endl;
  83. }
  84.  
  85. aktszansa += szansa;
  86. }
  87. liczbakm += 1;
  88. }
  89. if (x == 0)
  90. {
  91. break;
  92. }
  93. }
  94. cout << "Zuzyto " << zuzyto - pokeball << " pokeballi." << endl;
  95. cout << "Trener przeszedl " << liczbakm << " kilometrow" << endl;
  96.  
  97. system("pause");
  98.  
  99. return 0;
  100. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement