diff --git a/Arctic_Nigthmare/src/arctic_nightmare/Field.java b/Arctic_Nigthmare/src/arctic_nightmare/Field.java index 40cd1f35fb248a1b04e8b4bb3307b12497553d02..9bbac6752105c450fb8c60bdaff8851d86efa3b1 100644 --- a/Arctic_Nigthmare/src/arctic_nightmare/Field.java +++ b/Arctic_Nigthmare/src/arctic_nightmare/Field.java @@ -6,16 +6,16 @@ import java.util.ArrayList; import java.util.List; public abstract class Field { - private int snow; - private Item item; + protected int snow; + protected Item item; protected int capacity; protected boolean hasIgloo; private boolean itemPickable; protected ArrayList<Person> persons; - private ArrayList<Field> neighbors; // left right up down + private ArrayList<Field> neighbors; private boolean visibleCapacity; protected IceBear bear; - private Tent tent; + protected Tent tent; /*Only for proto*/ private int id; @@ -44,137 +44,103 @@ public abstract class Field { neighbors = new ArrayList<Field>(); id = idcounter++; } - - //Teszthez: a Field minden szomszedjat a kapott Field-re allitja az egyszeruseg kedveert. Nem valos funkció. - public void setAllNeighbor(Field field) - { - Direction dirs[] = Direction.values(); - for(Direction dir: dirs) { - neighbors.add(field); - } - } - //Adott irányban levo szomszédnak allitja be a kapott Fieldet - public void setNeighbor(Field field, Direction direction) - { - int idx = direction.ordinal(); - neighbors.set(idx, field); + public void accept(IceBear b) { + bear = b; + if(persons.size() != 0 && !hasIgloo) + persons.get(0).die(); } - public void addNeighbor(Field f) {neighbors.add(f);} - public abstract void accept(Person p); + public void addItem(Item it) { + item = it; + } + + public void addNeighbor(Field f) { + neighbors.add(f); + } + //A Fieldet ero hovihar hatasat kozvetiti a rajta allok fele public void blizzard(int quant){ - Logger.LogAndIncreaseTabs("Field blizzard"); this.snow += quant; - Logger.Log("Van iglu a mezőn?(0 = N, 1 = I)", false); - hasIgloo = Logger.getNumericInput(0, 1) == 1 ? true : false; - if(!hasIgloo) { + if(!(hasIgloo || tent != null)) { for(Person p : persons) p.hitByBlizzard(); } - else - Logger.Log(">>Az iglu megvédte a karaktereket a vihartól.", false); - Logger.decreaseTabs(); } public boolean clearSnow(int layers) { - Logger.LogAndIncreaseTabs("Field clearSnow"); if (snow > 0) { snow -= layers; - if (0 > snow) snow = 0; - Logger.Log(">>Letakarítva " + layers + " réteg hó. Még " + snow + " réteg van.",false); - Logger.decreaseTabs(); + if (snow < 0) + snow = 0; return true; } - Logger.decreaseTabs(); return false; } public boolean emitItem(){ - Logger.LogAndIncreaseTabs("Field emitItem"); - if(snow ==0) + if(snow ==0 && !itemPickable) { this.itemPickable= true; // ha nincs mar a mezon ho, az item lathatova valik - Logger.Log(">>Az item láthatóvá válik a pályán a kiásást követően"); - Logger.decreaseTabs(); return true; } - Logger.decreaseTabs(); return false; } - public int getCapacity(){return capacity;} + public boolean isNeighbor(Field f) + { + return neighbors.contains(f); + } + + public int getCapacity(){ + return capacity; + } public Item getItem() { - Logger.LogAndIncreaseTabs("Field getItem"); - if (snow > 0 || item == null) - { - Logger.Log(">>Túl sok hó, vagy nincs tárgy", false); - return null; - } - Logger.Log(">>Item removed", false); - Item item = this.item; - this.item = null; - Logger.decreaseTabs(); - return item; + if(snow == 0 && itemPickable) { + Item return_item = item; + item = null; + return return_item; + } + return null; } - public Field getNeighbor(Direction direction) + public List<Field> getNeighbors() { - Logger.LogAndIncreaseTabs("Field getNeighbor : " + direction); - Field f = neighbors.get(direction.ordinal()); - Logger.decreaseTabs(); - return f; + return neighbors; } - public List<Person> getPersons(){ - Logger.LogAndIncreaseTabs("Field getPersons"); - Logger.decreaseTabs(); + public List<Person> getPersons() + { return persons; } - public void remove(Person p){ - if(persons.remove(p)) { - Logger.LogAndIncreaseTabs("Field remove : " + p.getName()); - Logger.Log(">>" + p.getName() + " elhagyta a mezőt.", false); - } - Logger.decreaseTabs(); + public void removeBear() + { + bear = null; + } + + + public void remove(Person p) + { + persons.remove(p); } public void revealCapacity() { - Logger.LogAndIncreaseTabs("Field revealCapacity"); - Logger.Log("Mennyi a mező kapacitása?(0 - 100 közötti érték)", false); - capacity = Logger.getNumericInput(0, 100); - visibleCapacity = true; - Logger.Log(">>A mező kapacitása láthatóvá vált: " + capacity); - Logger.decreaseTabs(); + visibleCapacity = true; } public boolean setIgloo(){ - Logger.Log("Van iglu a mezõn? (0 = N, 1 = 1)", false); - if(Logger.getNumericInput(0, 1) == 1) { - Logger.Log(">>Már eddig is volt iglu a mezőn, nem tud építkezni."); - } - else { - hasIgloo = true; - Logger.Log(">>Sikeres igluépítés!"); - } - Logger.decreaseTabs(); - return (!hasIgloo); //ha nincs iglu, engedelyezi az epitest es igazzal ter vissza, ellenkezo esetben hamissal. - } - - //Teszteleshez szükseges függveny - //Nem ir ki semmit, mert csak inicializal - public void addPerson(Person p) { - persons.add(p); - p.field = this; + if(hasIgloo) + return false; + hasIgloo = true; + return true; } public boolean setTent(Tent t) { @@ -184,19 +150,15 @@ public abstract class Field { return true; } - public void accept(IceBear b) { - bear = b; - if(persons.size() != 0 && !hasIgloo) - persons.get(0).die(); - } - - public void removeBear() {bear = null;} - /*Only for proto*/ - public int getid() {return id;} + public int getid() + { + return id; + } /*Only for proto*/ - public void save(OutputStream os) { + public void save(OutputStream os) + { PrintWriter pw = new PrintWriter(os); String s = new String(get_type_name() + "("); s += getid() + "): "; @@ -245,8 +207,4 @@ public abstract class Field { /*Only for proto*/ public abstract String get_type_name(); - - public void addItem(Item it) { - item = it; - } } diff --git a/Arctic_Nigthmare/src/arctic_nightmare/StableField.java b/Arctic_Nigthmare/src/arctic_nightmare/StableField.java index 2f2e810ddc5f4350068e0720675f2564c4accba2..b01a5c9c19b1ff5b140c149811732e0a8d0c725b 100644 --- a/Arctic_Nigthmare/src/arctic_nightmare/StableField.java +++ b/Arctic_Nigthmare/src/arctic_nightmare/StableField.java @@ -3,7 +3,7 @@ package arctic_nightmare; public class StableField extends Field { public StableField(int snow, Item item) { - super(Integer.MAX_VALUE, snow, item); + super(10, snow, item); } @@ -15,13 +15,10 @@ public class StableField extends Field { public void accept(Person person) { - Logger.LogAndIncreaseTabs("StableField accept : " + person.getName()); if(bear != null && !hasIgloo) person.die(); person.field = this; persons.add(person); - Logger.Log(">>"+ person.getName() +" sikeresen átlépett stablefield-re.", false); - Logger.decreaseTabs(); } /*Only for proto*/ diff --git a/Arctic_Nigthmare/src/arctic_nightmare/UnstableField.java b/Arctic_Nigthmare/src/arctic_nightmare/UnstableField.java index d15bf1094669ab97d8a82122e3984108019cb2f0..3b0438dc93d822fa8cf33a860973c52011c56f56 100644 --- a/Arctic_Nigthmare/src/arctic_nightmare/UnstableField.java +++ b/Arctic_Nigthmare/src/arctic_nightmare/UnstableField.java @@ -1,6 +1,5 @@ package arctic_nightmare; -import java.util.ArrayList; public class UnstableField extends Field{ public UnstableField() { @@ -15,35 +14,24 @@ public class UnstableField extends Field{ public void accept(Person person) { - Logger.LogAndIncreaseTabs("UnstableField accept : " + person.getName()); persons.add(person); - Logger.Log("Mennyi a jégtábla kapacitása? (1-2)", false); - if(bear != null && !hasIgloo) person.die(); - capacity = Logger.getNumericInput(0, 3); if (persons.size() > capacity) - { overturn(); - } - else - Logger.Log(">>"+ person.getName() +" sikeresen átlépett unstablefield-re.", false); - Logger.decreaseTabs(); } public void overturn() { - Logger.LogAndIncreaseTabs("UnstableField overturn"); - //2-es teszteset vége. Ha a kapacitást túllépik és a vízbe esnek, akkor - //automatikusan a következõ teszteset is lefut mindkét Explorer-re segítõk és búvárruhák nélkül - Logger.Log(">>Ez után ér véget a >>2.- A felfedezõ instabil jégmezõre lép teszteset<<\n" + - "és vízbe esés esetén kezdõdik a >>3.- A felfedezõ vízbe esik.<<\n" + - "A szomszédos mezõkön nincs segítõ, a kutatóknak nincs búvárruhájuk.",false); + capacity = 0; + snow = 0; + hasIgloo = false; + item = null; + tent = null; for (Person person : persons) { person.fall(); } - Logger.decreaseTabs(); } /*Only for proto*/