Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Stwórz klasę reprezentującą robota. Powinien on przyjmować w konstruktorze swoje ID, imię, atak oraz obronę.
- // Jeżeli w konstruktorze podano atak lub obronę mniejszą niż 1 lub większą niż 10 to wyrzuć błąd (throw new Error("Złe statystyki!")).
- // Dodatkowo każdy robot powinien posiadać pole prywatne level, które na początku wynosi 1.
- // Wszystkie pola powinny być prywatne. ID powinno być tylko do odczytu. Do każdego pola zastosuj tam gdzie pasują settery i gettery (możesz zmienić nazwy pól na takie z podkreślnikami, żeby nie było konfliktów nazw).
- // Robot powinien mieć dodatkowo metodę levelUp(), która zwiększa losowo jego obronę lub atak o 1. Dodatkowo zwiększa to level o 1.
- // Następnie stwórz metodę fight(anotherRobot), która przyjmuje jako argument innego robota.
- // Sprawdź kto wygrał walkę, według wzoru: hitpoints = atakAtakujacego - obronaAtakowanego.
- // Wygrywa ten robot, który zadał więcej hitpoints. Jeżeli równo, to walka kończy się remisem.
- // Jeżeli nie było remisu, wykonaj na wygranym metodę .levelUp().
- // Wypisz w konsoli jaki był wynik. Zwróć ID zwycięzcy lub null w przypadku remisu.
- // Jeżeli chcesz i Cię to ciekawi to stwórz funkcję genRobot(), która wygeneruje nowego robota, z losowymi statystykami w zakresie 1-10, dowolnym ID i losowym imieniem.
- //Imię możesz wylosować za pomocą:
- function randRoboName(){
- const roboNameParts = ['robo', 'mech', 'zord', 'mega', 'tron', 'zulu', 'johnny5', 'x-512', 'bot', 'auto', 'prime', 'ultra', 'war', 'supreme', 'master', 'alpha', 'beta'];
- const roboNameJoins = [' ', '-', '', '.'];
- const partsCount = ~~(Math.random()*4+1);
- let name = '';
- for(let i = 0; i < partsCount; i++){
- const joiner = i === (partsCount-1) ? '' : roboNameJoins[~~(Math.random()*roboNameJoins.length)];
- name += roboNameParts[~~(Math.random()*roboNameParts.length)] + joiner;
- }
- return name.substr(0, 1).toUpperCase() + name.substr(1);
- }
- //Teraz stwórz arenę: wygeneruj 10 botów, następnie wykonaj walkę każdego z każdym.
- //Spróbuj wymyślić taki sposób, żeby walka była uczciwa, tzn. aby każdy robot zaczynał walkę z innym robotem, który też jeszcze nie walczył itp. i wypisz w konsoli obiekt zwycięzkiego robota. Wygrywa ten robot, który ma największy level.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement