@@ -2,45 +2,45 @@ package sc.api.plugins
22
33import kotlin.math.abs
44import kotlin.math.sqrt
5- import kotlin.random.Random
65
76interface IVector {
87 val dx: Int
98 val dy: Int
9+
10+ /* * Verändert die Länge des Vektors um den gegebenen Faktor, ohne seine Richtung zu ändern. */
11+ operator fun times (scalar : Int ): Vector =
12+ Vector (scalar * dx, scalar * dy)
13+
14+ /* * Konvertiert den Vektor zu entsprechenden [Coordinates]. */
15+ operator fun unaryPlus (): Coordinates = Coordinates (dx, dy)
1016}
1117
1218/* *
1319 * Die Strecke zwischen zwei [Coordinates].
1420 * @property dx die Differenz in x-Richtung
1521 * @property dy die Differenz in y-Richtung
1622 */
17- data class Vector (override val dx : Int , override val dy : Int ): IVector, Comparable<IVector > {
23+ data class Vector (override val dx : Int , override val dy : Int ): IVector, Comparable<Vector > {
1824
1925 /* * Die Fläche des Rechtecks, dessen Diagonale der Vector ist. */
2026 val area: Int
2127 get() = abs(dx * dy)
2228
29+ /* * Länge des Vektors auf einem rechteckigen Spielfeld. */
2330 val length: Double
2431 get() = sqrt(comparableLength.toDouble())
2532
26- /* * Verändert die Länge des Vektors um den gegebenen Faktor, ohne seine Richtung zu ändern. */
27- operator fun times (scalar : Int ): Vector =
28- Vector (scalar * dx, scalar * dy)
29-
33+ /* * Ob dieser Vektor auf einem doubled Hex Feld eine gerade Linie beschreibt. */
3034 val straightHex: Boolean
3135 get() = abs(dx) == abs(dy) || (dx % 2 == 0 && dy == 0 )
3236
33- private val IVector . comparableLength: Int
37+ private val comparableLength: Int
3438 get() = dx * dx + dy * dy
3539
3640 /* *
3741 * Vergleicht die Länge dieses Vektors mit einem anderen.
38- * @return groesser Null , wenn dieser laenger ist
42+ * @return groesser als 0 , wenn dieser Vektor laenger ist
3943 */
40- override operator fun compareTo (other : IVector ): Int =
41- comparableLength - other.comparableLength
42-
43- /* * Konvertiert den Vektor zu entsprechenden [Coordinates]. */
44- operator fun unaryPlus (): Coordinates = Coordinates (dx, dy)
45-
44+ override operator fun compareTo (other : Vector ): Int =
45+ comparableLength - other.comparableLength
4646}
0 commit comments