HellsBells #275
@ -29,7 +29,7 @@ public class HellsBells {
|
|||||||
EAST(1, 0, 0, false),
|
EAST(1, 0, 0, false),
|
||||||
WEST(-1, 0, 0, false);
|
WEST(-1, 0, 0, false);
|
||||||
|
|
||||||
static final List<Direction> DIRECTIONS = Arrays.asList(values());
|
static final Direction[] DIRECTIONS = values();
|
||||||
|
|
||||||
int dx;
|
int dx;
|
||||||
int dy;
|
int dy;
|
||||||
@ -43,6 +43,10 @@ public class HellsBells {
|
|||||||
this.zLength = zLength;
|
this.zLength = zLength;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
|
public static Direction getRandom() {
|
||||||
|
return Direction.DIRECTIONS[random.nextInt(Direction.DIRECTIONS.length)];
|
||||||
|
}
|
||||||
|
|
||||||
Direction other() {
|
Direction other() {
|
||||||
switch (this) {
|
switch (this) {
|
||||||
Lixfel
hat
Warum das nochmal extra vorhalten? In getRandom kann ja auch values() aufgerufen werden... Warum das nochmal extra vorhalten? In getRandom kann ja auch values() aufgerufen werden...
YoyoNow
hat
values() auf einem Enum erzeugt immer eine kopie der Enum Elemente intern, daher recht inefficient. values() auf einem Enum erzeugt immer eine kopie der Enum Elemente intern, daher recht inefficient.
Lixfel
hat
Ich finde, es ist ineffizienter, eine Kopie ständig im RAM zu halten, als alle x Minuten mal eine neue Kopie des 4! Elemente großen Array anzulegen. Ist zudem kürzer und einfacher, einfach neu zu kopieren. Ich finde, es ist ineffizienter, eine Kopie ständig im RAM zu halten, als alle x Minuten mal eine neue Kopie des 4! Elemente großen Array anzulegen. Ist zudem kürzer und einfacher, einfach neu zu kopieren.
|
|||||||
case NORTH:
|
case NORTH:
|
||||||
@ -130,7 +134,7 @@ public class HellsBells {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void drop() {
|
public void drop() {
|
||||||
Direction direction = Direction.DIRECTIONS.get(random.nextInt(Direction.DIRECTIONS.size()));
|
Direction direction = Direction.getRandom();
|
||||||
|
|
||||||
YoyoNow markierte diese Unterhaltung als gelöst
Veraltet
Lixfel
hat
Diesen if-Block kann man denke ich vereinfachen, wenn man stattdessen in den Assignments mit dem conditional-Operator arbeitet ?:. Diesen if-Block kann man denke ich vereinfachen, wenn man stattdessen in den Assignments mit dem conditional-Operator arbeitet ?:.
|
|||||||
AtomicInteger length = new AtomicInteger(10 + random.nextInt((direction.zLength ? zLength : xLength) - 10));
|
AtomicInteger length = new AtomicInteger(10 + random.nextInt((direction.zLength ? zLength : xLength) - 10));
|
||||||
int width = 5 + random.nextInt(5);
|
int width = 5 + random.nextInt(5);
|
||||||
|
In neuem Issue referenzieren
Einen Benutzer sperren
Subklassen bitte nach dem Inhalt der Hauptklasse.