09. november 2003 - 21:25Der er
17 kommentarer og 1 løsning
tekstbaseret spil i java
Vi er et par nybegyndere som sidder og laver et tekstbaseret spil i java. Spillet går ud på at man skal køre rundt i Danmark (hvis du f.eks. er i Odense og giver kommandoen "go south", kommer man til Svendborg.) Når man kører, mister man benzin, men vores problem er så, at vi ikke kan finde ud af, hvordan man mister benzinen og hvad man skal gøre for at fylde benzin på. -Altså hvordan man smartest kan opbygge player-classen med nogle metoder der gør dette.
Vi har 7 klasser: game parser command city item player commandwords
Jeres Player klasse (eller Car klasse hvis sådan en er gemt inde i Player) skal vel have et private member gas, en public metode getGas til at hente værdien, en metode tank som tæller den op og så skal move metoderne tælle den ned afhængig af afstanden.
det forstår vi ikke helt. Lad os nu sige at bilen max kan køre 3 byer. Hvordan ville man smartest holde styr på hvor meget gas der er i bilen. Er det nødvendigt eller overhovedet muligt med et hashMap? eller er der en bedre løsning? Kan du komme med et eksempel på en af metoderne hvordan man fx kunne bygge den op? .. :)
kan jeg egentlig godt forstå...det er nok heller ikke så nemt lige at sætte sig ind i sådan en opgave men det du har skrevet der ser egentlig meget fornuftigt ud...vi kigger lige på det og så skriver vi igen.
public class Player { private String description; private int totalweight; private int money; private int gas; private int gasusage; private HashMap inventory; private int fill; private int km;
/** * Constructor for objects of class Player */ public Player(String playerDescription, int playerTotalWeight, int playerMoney, int playerGas, int buyGas) { // initialise instance variables description = playerDescription; totalweight = playerTotalWeight; money = playerMoney; gas = playerGas; inventory = new HashMap(); fill = buyGas;
}
/** * Returns inventory for example Inventory: En sofa */ private String getItemString() { String returnString = "Inventory:"; Set keys = inventory.keySet(); for(Iterator iter = keys.iterator(); iter.hasNext(); ) returnString += " " + iter.next(); return returnString; } public int getMoney() { return money; } public void setMoney() { money -= fill; } public int getGas() { return gas; } public void tankGas() { gas += fill; } public void move(Room next) { gas -= gasusage * km; } }
men egentlig behøver det ikke være så kompliceret med kilomter osv. vi har besluttet at man på en tank bare skal kunne køre 4 byer .. dvs at vær gang kommandoen go west fx bliver brugt skal der være en enhed benzin mindre i tanken ..
det ville være super (og 200 point værd) hvis du gad kigge koden her igennem og kommentere og rette fejl (og vi ved der er nogen) til noget der næsten virker. Det er meningen at man med en kommando: buy gas. i bestemte byer i hashMappet skal kunne købe 5 enheder benzin eller så noget .. Håber ikke det er totaluforståeligt .. vi taler ikke helt javasprog endnu kan man vist rolig sige.. :)
Hej Arne Undskyld jeg ikke har meldt tilbage .. men vi er lidt pressede.. Hvis du smider et svar så får du points .. Jeg har et sidste spørgsmål jeg opretter det gerne som et nyt spørgsmål hvis du syntes det er det bedste. Vi har som tidligere nævnt klasserne game, player og item. Vi vil gerne have sådan at man med kommandoen get Ring kan samle et item op. Det der skal foregå er at man skal tilføje noget til hashmap inventory i player class og samtidig fjerne det fra Hashmap room i game class .. Hvordan kan man bedste løse dette? altså tage noget fra et hashmap og tilføje det til et andet.
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.