Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.ArrayList; // Funktionen för arraylist finns inbyggd, importerar den för att vi ska kunna jobba med vår egna arraylist
- public class SuperHjalte // Skapar vår klass superhjälte
- {
- private ArrayList<SuperVapen> vapen; // Deklarerar ett fält av typen ArrayList
- private String namn; // Deklarerar en variabel som som heter namn och är av typen String
- private String overvakadStad; // Deklarerar en variabel som heter overvakadStad och är av typen String
- public SuperHjalte(String namn, String overvakadStad) // konstruktor för vår klass
- {
- this.vapen = new ArrayList<>();
- this.namn = namn;
- this.overvakadStad = overvakadStad;
- }
- public void addSuperVapen(SuperVapen vapen) // Vår metod för att lägga in superhjältens vapen
- {
- String vapenNamn = vapen.getNamn(); // Spara vapennamn som lokal variabel så vi kan använda sen
- boolean nameExists = false; // Vår bool för att se om vapennamnet redan finns
- for(int i = 0; i < this.vapen.size(); i++) // Iterera vår vapenlista och se om namnet förekommer i listan
- {
- if(this.vapen.get(i).getNamn().equals(vapenNamn)) // Kontroll av vapennamnet, finns den så körs nedanstående
- {
- // Förekommer namnet så slutar vi iterera och sätter vår boolean till true
- nameExists = true;
- System.out.println("Superhjälten har redan ett supervapen med namnet: " + vapenNamn);
- break;
- }
- }
- if(!nameExists) // Om vapnet ej finns läggs den in i vår arraylist och meddelandet skrivs ut på skärmen
- {
- this.vapen.add(vapen);
- System.out.println("Ett nytt supervapen har registreras för superhjälten");
- }
- }
- public String getNamn(){ // Returnerar namnet på vår hjälte
- return this.namn;
- }
- public String getOvervakadStad(){ // Returnerar namnet på vår övervakade stad
- return this.overvakadStad;
- }
- public void printInfo(){ // Vår metod för att få information om hjältens namn, stad, vapen och antal laddningar
- System.out.println("Superhjälten " + this.getNamn() + " vakar över staden " + this.getOvervakadStad()); // Använder oss av metoderna ovanför för att få inmatade namnet och staden
- System.out.println("Hjältens supervapen: ");
- for(int i = 0; i < this.vapen.size(); i++) // Itererar vår array för att få vapennamn och antal laddningar
- {
- SuperVapen iterVapen = this.vapen.get(i);
- System.out.println(iterVapen.getNamn() + " antal laddningar " + this.vapen.get(i).getAntalLaddningar()); // Skriver ut namnet plus antal laddningar
- }
- }
- public void anvandVapen(String vapen, int laddningar) // Metoden för att få skjuta vapen och kontrollera antal laddningar
- {
- for(int i = 0; i < this.vapen.size(); i++) // Iterera vår vapenlista igen
- {
- if(this.vapen.get(i).getNamn().equals(vapen)) // Kontrollera om vapnet har skjutit
- {
- boolean weaponFired = false;
- SuperVapen valtVapen = this.vapen.get(i);
- if(valtVapen.getAntalLaddningar() >= laddningar) { // Kolla om det finns tillräckligt många laddningar
- weaponFired = true;
- for(int y = 0; y < laddningar; y++)
- {
- valtVapen.anvandSuperVapen(); // Skjut vapnet så många ggr som det var angivet i parametern
- }
- System.out.println("Supervapen har använts och det finns nu "+ valtVapen.getAntalLaddningar() + " kvar");
- }
- if(!weaponFired) // Om vapnet inte har skjutits skriver vi ut något annat
- {
- System.out.println("Det fanns inte tillräckligt antal laddningar kvar, försök med ett annat supervapen istället");
- }
- }
- }
- }
- public int getTotaltAntalLaddningar() // Vår metod för att hämta antalladdningar och addera till totalet
- {
- int antalLaddningar = 0;
- for(int i = 0; i < this.vapen.size(); i++) // Iterera vår vapenlista
- {
- antalLaddningar += this.vapen.get(i).getAntalLaddningar(); // Hämta antalLaddningar och addera till totalet
- }
- return antalLaddningar;
- }
- public void printTotaltAntalLaddningar() // Skriv ut totalt antal laddningar
- {
- System.out.println("Hjälten " + this.getNamn() + " har " + this.getTotaltAntalLaddningar() + " laddningar kvar!");
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement