Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- /*.
- 2. Zasymuluje poszukiwanie i próbe złapania Pokémona w nastepujacy sposób:
- 1) Po kazdym przebytym kilometrze przy pomocy funkcji rand() wyznaczamy liczbe z przedziału [0, 0.8).
- 2) Dodajemy do niej aktualny modyfikator szansy spotkania stworka.
- 3) Otrzymana wartosc jest szansa pojawienia sie Pokémona. Jesli wynosi ona co najmniej 0.75, to
- przyjmujemy, ze mamy mozliwosc podjecia próby złapania go. W przeciwnym przypadku zwiekszamy
- aktualny modyfikator szansy spotkania potwora i wracamy do punktu 1).
- 4) Jesli pojawił nam sie Pokémon (otrzymalismy wartosc równa co najmniej 0.75), to próbujemy go
- złapac rzucajac w niego kolejnymi Poké Ballami, gdzie przy pomocy funkcji rand() (wynik funkcji
- przeskalowany do liczby z przedziału [0, 1)) okreslamy czy stworek złapał sie (wartosc co najmniej równa
- 0.85), uciekł (wartosc co najwyzej równa 0.1) czy wyskoczył z rzuconego Poké Balla (w przeciwnym
- przypadku). Jesli Pokémon wyskoczył z Poké Balla (ale nie uciekł), to tracimy owy przedmiot i
- próbujemy go złapac kolejnym Poké Ballem. Natomiast w przypadku złapania lub ucieczki potwora
- program powinien zakonczyc działanie wypisujac stosowne komunikaty.
- 3. Poda liczbe przebytych kilometrów do pojawienia sie poszukiwanego Pokémona, liczbe zuzytych Poké
- Balli i informacje czy udało nam sie go złapac czy tez uciekł.
- Zakładamy, ze Pokémon musi sie pojawic najpózniej podczas ostatniego kilometra podrózy oraz ze jesli
- zuzyjemy wszystkie Poké Balle, to Pokémon nam uciekł. Aktualny modyfikator szansy spotkania stworka na
- starcie jest równy 0, a ziarno generatora powinno byc ustawione na liczbe posiadanych Poké Balli.*/
- int main()
- {
- int pokeball, maxkm, liczbakm = 1, zuzyto;
- double szansa, liczba, aktszansa, x = 0;
- cout << "Wprowadz ilosc pokeballi:";
- cin >> pokeball;
- cout << "Wprowadz maksymalna ilosc kilometrow:";
- cin >> maxkm;
- cout << "Wprowadz przyrost szansy:";
- cin >> szansa;
- cout << endl;
- if (pokeball > 50 || pokeball < 10 || maxkm < 15 || maxkm>20 || szansa<0 || szansa>0.01)
- {
- cout << "Bledne dane." << endl;
- system("pause");
- exit(1);
- }
- srand(pokeball);
- aktszansa = szansa;
- zuzyto = pokeball;
- for (int i = 1; i < maxkm; i++)
- {
- //srand(pokeball);
- liczba = (double(rand()) / double(RAND_MAX)) * 0, 8 + aktszansa;
- if (liczba >= 0, 75)
- {
- cout << "Spotkales pokemona. Sprobuj go zlapac." << endl;
- while (pokeball > 0)
- {
- //srand();
- liczba = (double(rand()) / double(RAND_MAX));
- cout << liczba << endl;
- if (liczba <= 0.1)
- {
- x = 0;
- cout << "Pokemon uciekl :(" << endl;
- pokeball--;
- break;
- }
- else if (liczba >= 0.85)
- {
- x = 0;
- cout << "zlapales go" << endl;
- pokeball--;
- break;
- }
- else
- {
- cout << "Wymknal sie.\n Sprobuj jeszcze raz." << endl;
- }
- pokeball -= 1;
- if (pokeball == 0)
- {
- cout << "Skonczyly ci sie pokeballe" << endl;
- }
- aktszansa += szansa;
- }
- liczbakm += 1;
- }
- if (x == 0)
- {
- break;
- }
- }
- cout << "Zuzyto " << zuzyto - pokeball << " pokeballi." << endl;
- cout << "Trener przeszedl " << liczbakm << " kilometrow" << endl;
- system("pause");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement