Skip to content

Commit 47d9908

Browse files
committed
feat(plugin26/board): deliberate Field structure
1 parent 166bfbc commit 47d9908

File tree

1 file changed

+8
-8
lines changed
  • plugin2026/src/main/kotlin/sc/plugin2026

1 file changed

+8
-8
lines changed

plugin2026/src/main/kotlin/sc/plugin2026/Board.kt

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,14 @@ import com.thoughtworks.xstream.annotations.XStreamAlias
44
import sc.api.plugins.MutableTwoDBoard
55
import sc.api.plugins.RectangularBoard
66
import sc.api.plugins.Team
7-
import sc.api.plugins.deepCopy
8-
import sc.plugin2026.FieldState.OBSTRUCTED
97
import sc.plugin2026.util.*
108
import kotlin.math.floor
119

10+
typealias FieldS = Field
11+
1212
/** Spielbrett für Piranhas mit [PiranhaConstants.BOARD_LENGTH]² Feldern. */
1313
@XStreamAlias(value = "board")
14-
class Board(gameField: MutableTwoDBoard<Field> = randomFields()): RectangularBoard<Field>(gameField) {
14+
class Board(gameField: MutableTwoDBoard<FieldS> = randomFields()): RectangularBoard<FieldS>(gameField) {
1515

1616
// TODO later
1717
//override fun toString() =
@@ -29,12 +29,12 @@ class Board(gameField: MutableTwoDBoard<Field> = randomFields()): RectangularBoa
2929
//}
3030

3131
override fun clone(): Board =
32-
Board(gameField.deepCopy())
32+
Board(Array(gameField.size) { column -> this.gameField[column].clone() })
3333

3434
companion object {
3535
/** Erstellt eine zufälliges Spielbrett. */
36-
private fun randomFields(): Array<Array<Field>> {
37-
val fields = generateFields { x, y -> Field(x, y) }
36+
private fun randomFields(): MutableTwoDBoard<FieldS> {
37+
val fields = generateFields { x, y -> FieldS(x, y) }
3838

3939
// Place Piranhas
4040
for(index in 1 until PiranhaConstants.BOARD_LENGTH - 1) {
@@ -52,7 +52,7 @@ class Board(gameField: MutableTwoDBoard<Field> = randomFields()): RectangularBoa
5252
for(i in 0 until PiranhaConstants.NUM_OBSTACLES) {
5353
val indexOfFieldToBlock = floor(Math.random() * blockableFields.size).toInt()
5454
val selectedField = blockableFields[indexOfFieldToBlock]
55-
selectedField.state = OBSTRUCTED
55+
selectedField.state = FieldState.OBSTRUCTED
5656
blockableFields = blockableFields.filter { field ->
5757
!(field.x == selectedField.x || field.y == selectedField.y ||
5858
field.x - field.y == selectedField.x - selectedField.y ||
@@ -62,7 +62,7 @@ class Board(gameField: MutableTwoDBoard<Field> = randomFields()): RectangularBoa
6262
return fields
6363
}
6464

65-
private fun generateFields(generator: (Int, Int) -> Field): Array<Array<Field>> {
65+
private fun generateFields(generator: (Int, Int) -> FieldS): Array<Array<FieldS>> {
6666
return Array(PiranhaConstants.BOARD_LENGTH) { x ->
6767
Array(PiranhaConstants.BOARD_LENGTH) { y ->
6868
generator(x, y)

0 commit comments

Comments
 (0)