diff options
-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( |