Her er den klasse jeg ikke kan få til at virke: import java.util.*; /** * Room laver et rum, med forbindelse til andre rum * - kan indeholde genstande og besøgende. */ public class Room {
//Fields private List rooms; private ArrayList items; private String name; private Random randomGenerator=new Random();
//Constructor. /** * rooms is a list of length 4 where * rooms.get(0) refers to the room in direction EAST * rooms.get(1) refers to the room in direction NORTH * rooms.get(2) refers to the room in direction WEST * rooms.get(3) refers to the room in direction SOUTH */
public Room(String name) {rooms = new ArrayList(4); for (int i = 0; i < 4; i++) {rooms.add(i, null);}
items = new ArrayList(); this.name = name; } //Method public void connectTo(int dir, Room r) {rooms.set(dir, r);} //Method public boolean roomExists(int dir) { return rooms.get(dir) != null; } //Method public Room leadTo(int dir) {return (Room)rooms.get(dir);} //Method public void addItem(Item i) {items.add(i);} //Method public boolean itemExists() { if (items.size()>0) { return true; } else { return false; } } //Method public Item chooseItem() {int itemsSize = items.size(); int p = randomGenerator.nextInt(); return (Item) items.get(itemsSize); } //Method public void removeItem(Item i) {System.out.println(items.remove(i) + " has been removed");}
//Den Nye Metode public void roomContains(Item i); {if(location.roomContains()== true){ System.out.println("The Item is in the Room."); }}
//Method public String toString() {return this.name;}
}
Den er så i sammenhæng med en Item-klasse og en Visitorklasse.
Denne side indeholder artikler med forskellige perspektiver på Identity & Access Management i private og offentlige organisationer. Artiklerne behandler aktuelle IAM-emner og leveres af producenter, rådgivere og implementeringspartnere.
Jeg ved godt der ikke er meget metode over den der, men jeg ved faktisk ikke hvordan jeg skal lave en metode, som kan finde ud af om Item er i Room. det må være en Boolean jeg skal lave?
import java.util.*; /** * Room laver et rum, med forbindelse til andre rum * - kan indeholde genstande og besøgende. */ public class Room {
//Fields private List rooms; private ArrayList items; private String name; private Random randomGenerator=new Random(); private Room location;
//Constructor. /** * rooms is a list of length 4 where * rooms.get(0) refers to the room in direction EAST * rooms.get(1) refers to the room in direction NORTH * rooms.get(2) refers to the room in direction WEST * rooms.get(3) refers to the room in direction SOUTH */
public Room(String name) {rooms = new ArrayList(4); for (int i = 0; i < 4; i++) {rooms.add(i, null);}
items = new ArrayList(); this.name = name; }
//Method public void connectTo(int dir, Room r) {rooms.set(dir, r);} //Method public boolean roomExists(int dir) { return rooms.get(dir) != null; } //Method public Room leadTo(int dir) {return (Room)rooms.get(dir);} //Method public void addItem(Item i) {items.add(i);} //Method public boolean itemExists() { if (items.size()>0) { return true; } else { return false; } } //Method public Item chooseItem() {int itemsSize = items.size(); int p = randomGenerator.nextInt(); return (Item) items.get(itemsSize); } //Method public void removeItem(Item i) {System.out.println(items.remove(i) + " has been removed");}
//Den Nye Metode public boolean roomContains(Item i) {if(location.roomContains()== true){ System.out.println("The Item is in the Room."); }} //Method public String toString() {return this.name;}
Den hænger sammen med den he ri Visitor-klassen. //Method
public void pickUp(Item i) { if (location.roomContains() == true) { location.removeItem(i); {items.add(i); } else { System.out.println("The Item is not in the Room.");
} } } Jeg kan faktisk ikke gennemskue hvad metoden skal gøre..Det er nok også derfor det er så svært.
Du har en metode 'itemExists' ser kikker sig om i værelset og ser om der er et eller andet.
metoden 'roomContains' er mere specifik. det vil have et specifikt Item som parameter (fx en hammer) og skal så lede i din liste items og se om der er en hammer der.
Så jeg vil tro det skal være:
public boolean roomContains(Item i) { int teller; if(location.itemExists()== true) { // ok det kan betale sig at kikke listen iigennem for ( teller=0; teller<items.size; teller++ ) { if ( items.get(teller) = i ) { return true; // fundet i listen } } return false; // ikke fundet i listen } else { return false; // listen er tom } }
PS: dine indrykninger er eet rod. prøv at tænke lidt over hvorfor jeg og arne og din lærer og allmulige andre synes de er så vigtige og hvad de skal være der for :-)
Ups, jeg brugte enkelt = istedet for dobbelt for at sammenligne if ( items.get(teller) == i ) {
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.