Skip to content
Snippets Groups Projects
Commit c4533e92 authored by Fodor Patrik's avatar Fodor Patrik :ghost:
Browse files

Portal is Kerge

parent 194f4166
No related branches found
No related tags found
1 merge request!86Portal is Kerge
Pipeline #7138 passed
...@@ -256,6 +256,7 @@ public class Asteroid extends Visitable { ...@@ -256,6 +256,7 @@ public class Asteroid extends Visitable {
* Visszaadja az aszteroidának a szomszédainak a listáját. * Visszaadja az aszteroidának a szomszédainak a listáját.
* @return aszteroida szomszédainak listája * @return aszteroida szomszédainak listája
*/ */
@Override
@Docs(type = "Visitable 1..*") @Docs(type = "Visitable 1..*")
public List<Visitable> getNeighbours() { public List<Visitable> getNeighbours() {
MagicLogger.call(this); MagicLogger.call(this);
...@@ -337,6 +338,7 @@ public class Asteroid extends Visitable { ...@@ -337,6 +338,7 @@ public class Asteroid extends Visitable {
* Eltávolít egy objektumot a szomszédok listájából. * Eltávolít egy objektumot a szomszédok listájából.
* @param visitable az eltávolítandó meglátogatható objektum * @param visitable az eltávolítandó meglátogatható objektum
*/ */
@Override
@Docs(changed = true) @Docs(changed = true)
public void removeNeighbour(Visitable visitable){ public void removeNeighbour(Visitable visitable){
MagicLogger.call(this, visitable); MagicLogger.call(this, visitable);
......
...@@ -27,7 +27,7 @@ public class Portal extends Visitable { ...@@ -27,7 +27,7 @@ public class Portal extends Visitable {
/** /**
* Az aszteroida, amin a teleportkapu van. * Az aszteroida, amin a teleportkapu van.
*/ */
private Asteroid asteroid; private Visitable asteroid;
/** /**
* Amennyiben a portál párja is egy aszteroida körül kering megnyitja a portálok közötti átjárót * Amennyiben a portál párja is egy aszteroida körül kering megnyitja a portálok közötti átjárót
...@@ -88,7 +88,7 @@ public class Portal extends Visitable { ...@@ -88,7 +88,7 @@ public class Portal extends Visitable {
* Visszaadja az aszteroidát. * Visszaadja az aszteroidát.
* @return aszteroida * @return aszteroida
*/ */
public Asteroid getAsteroid() { public Visitable getAsteroid() {
MagicLogger.call(this); MagicLogger.call(this);
MagicLogger.ret(asteroid); MagicLogger.ret(asteroid);
return asteroid; return asteroid;
...@@ -148,11 +148,11 @@ public class Portal extends Visitable { ...@@ -148,11 +148,11 @@ public class Portal extends Visitable {
boolean success = false; boolean success = false;
while (!success) { while (!success) {
var nextAsteroid = Rand.newListElement(asteroid.getNeighbours()); Visitable nextAsteroid = Rand.newListElement(asteroid.getNeighbours());
success = nextAsteroid.addNeighbour(this); success = nextAsteroid.addNeighbour(this);
if(success){ if(success){
//asteroid = nextAsteroid; TODO: Megkérdezni a magic fickót! asteroid = nextAsteroid;
} }
} }
......
...@@ -54,7 +54,11 @@ public class Rand { ...@@ -54,7 +54,11 @@ public class Rand {
public static <T> T newListElement(@Docs(type = "List<T>") List<T> list) { public static <T> T newListElement(@Docs(type = "List<T>") List<T> list) {
MagicLogger.callStatic(Rand.class); MagicLogger.callStatic(Rand.class);
rand = new Random(); rand = new Random();
var ret = list.get(rand.nextInt(list.size())); T ret = null;
while(ret == null) {
ret = list.get(rand.nextInt(list.size()));
}
MagicLogger.ret(ret); MagicLogger.ret(ret);
return ret; return ret;
} }
......
package projlab; package projlab;
import java.util.List;
/** /**
* A meglátogatható objektumok (aszteroida, teleportkapu) absztrakt ősosztálya. * A meglátogatható objektumok (aszteroida, teleportkapu) absztrakt ősosztálya.
*/ */
...@@ -56,6 +58,27 @@ public abstract class Visitable implements Ticker { ...@@ -56,6 +58,27 @@ public abstract class Visitable implements Ticker {
return false; return false;
} }
/**
* Amennyiben a megltogatható objektumnak vannak szomszédai, visszaadja a szomszédainak a listáját.
* @return a szomszédainak listája
*/
@Docs(type = "Visitable 1..*", changed = true)
public List<Visitable> getNeighbours() {
MagicLogger.call(this);
MagicLogger.ret(null);
return null;
}
/**
* Amennyiben a megltogatható objektumnak vannak szomszédai, eltávolít egy objektumot a szomszédok listájából.
* @param visitable az eltávolítandó meglátogatható objektum
*/
@Docs(changed = true)
public void removeNeighbour(Visitable visitable){
MagicLogger.call(this, visitable);
MagicLogger.ret();
}
/** /**
* A meglátogatható objektumokat elérő napvihar. * A meglátogatható objektumokat elérő napvihar.
* @param range mekkora távolságon belül van napvihar * @param range mekkora távolságon belül van napvihar
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment