diff options
Diffstat (limited to 'app/src')
| -rw-r--r-- | app/src/main/java/com/a404m/mine_game/model/GameState.kt | 14 | 
1 files changed, 8 insertions, 6 deletions
diff --git a/app/src/main/java/com/a404m/mine_game/model/GameState.kt b/app/src/main/java/com/a404m/mine_game/model/GameState.kt index 656ca72..5b4c36a 100644 --- a/app/src/main/java/com/a404m/mine_game/model/GameState.kt +++ b/app/src/main/java/com/a404m/mine_game/model/GameState.kt @@ -11,9 +11,11 @@ import org.json.JSONArray  import org.json.JSONObject  import kotlin.random.Random +typealias GameMatrix = ArrayList<ArrayList<GameState.Cell>> +  class GameState(      val startDate: PersianDate, -    val matrix: ArrayList<ArrayList<Cell>>, +    val matrix: GameMatrix,      millis: Long = 0,  ) : JsonSerializable {      var millis by mutableLongStateOf(millis) @@ -37,8 +39,8 @@ class GameState(          seed: Int?,      ) : this(          startDate = PersianDate(), -        matrix = arrayListOf<ArrayList<Cell>>().apply { -            ensureCapacity(width) +        matrix = GameMatrix().apply { +            ensureCapacity(height)              var cellRemaining = width * height              if (cellRemaining < mines) {                  throw IllegalStateException("Mines are more than cells $mines > $cellRemaining") @@ -47,11 +49,11 @@ class GameState(              val random = if (seed == null) Random else Random(seed) -            for (i in 0 until width) { +            for (i in 0 until height) {                  add(                      arrayListOf<Cell>().apply { -                        ensureCapacity(height) -                        for (j in 0 until height) { +                        ensureCapacity(width) +                        for (j in 0 until width) {                              val isBomb = random.nextInt(cellRemaining) < bombsRemaining                              add(                                  Cell(  |