Skip to content

Commit

Permalink
wip
Browse files Browse the repository at this point in the history
  • Loading branch information
meikpiep committed Oct 22, 2024
1 parent 78b154e commit fc0ae19
Show file tree
Hide file tree
Showing 8 changed files with 15 additions and 8 deletions.
Original file line number Diff line number Diff line change
@@ -1,16 +1,17 @@
package org.piepmeyer.gauguin.ui.main

import android.os.Bundle
import androidx.fragment.app.viewModels
import androidx.lifecycle.lifecycleScope
import androidx.lifecycle.repeatOnLifecycle
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.ImageView
import androidx.fragment.app.Fragment
import androidx.fragment.app.viewModels
import androidx.lifecycle.Lifecycle
import androidx.lifecycle.lifecycleScope
import androidx.lifecycle.repeatOnLifecycle
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
import org.koin.core.component.KoinComponent
import org.koin.core.component.inject
import org.piepmeyer.gauguin.R
Expand Down
1 change: 1 addition & 0 deletions gauguin-core/game_0-4x4-2712.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"variant":{"gridSize":{"width":4,"height":4},"options":{"showOperators":true,"cageOperation":"OPERATIONS_ALL","digitSetting":"FIRST_DIGIT_ONE","difficultySetting":"ANY","singleCageUsage":"FIXED_NUMBER","numeralSystem":"Decimal"}},"savedAtInMilliseconds":1728658403709,"playTimeInMilliseconds":0,"startedToBePlayed":true,"isActive":true,"cells":[{"cellNumber":0,"row":0,"column":0,"value":1,"userValue":2147483647,"possibles":[1,2]},{"cellNumber":1,"row":0,"column":1,"value":4,"userValue":2147483647,"possibles":[2,4]},{"cellNumber":2,"row":0,"column":2,"value":2,"userValue":2147483647,"possibles":[1,2,4]},{"cellNumber":3,"row":0,"column":3,"value":3,"userValue":3,"possibles":[]},{"cellNumber":4,"row":1,"column":0,"value":4,"userValue":4,"possibles":[]},{"cellNumber":5,"row":1,"column":1,"value":2,"userValue":2147483647,"possibles":[2,3]},{"cellNumber":6,"row":1,"column":2,"value":3,"userValue":2147483647,"possibles":[2,3]},{"cellNumber":7,"row":1,"column":3,"value":1,"userValue":1,"possibles":[]},{"cellNumber":8,"row":2,"column":0,"value":2,"userValue":2147483647,"possibles":[1,2]},{"cellNumber":9,"row":2,"column":1,"value":3,"userValue":2147483647,"possibles":[3,4]},{"cellNumber":10,"row":2,"column":2,"value":1,"userValue":2147483647,"possibles":[1,3]},{"cellNumber":11,"row":2,"column":3,"value":4,"userValue":2147483647,"possibles":[2,4]},{"cellNumber":12,"row":3,"column":0,"value":3,"userValue":3,"possibles":[]},{"cellNumber":13,"row":3,"column":1,"value":1,"userValue":1,"possibles":[]},{"cellNumber":14,"row":3,"column":2,"value":4,"userValue":2147483647,"possibles":[2,4]},{"cellNumber":15,"row":3,"column":3,"value":2,"userValue":2147483647,"possibles":[2,4]}],"selectedCellNumber":null,"invalidCellNumbers":[],"cheatedCellNumbers":[],"cages":[{"id":0,"action":"ACTION_NONE","type":"SINGLE","result":1,"cellNumbers":[13]},{"id":1,"action":"ACTION_NONE","type":"SINGLE","result":4,"cellNumbers":[4]},{"id":2,"action":"ACTION_MULTIPLY","type":"TRIPLE_HORIZONTAL","result":8,"cellNumbers":[0,1,2]},{"id":3,"action":"ACTION_ADD","type":"L_VERTICAL_SHORT_LEFT_BOTTOM","result":9,"cellNumbers":[3,7,11,10]},{"id":4,"action":"ACTION_SUBTRACT","type":"DOUBLE_HORIZONTAL","result":1,"cellNumbers":[5,6]},{"id":5,"action":"ACTION_ADD","type":"ANGLE_RIGHT_BOTTOM","result":8,"cellNumbers":[8,9,12]},{"id":6,"action":"ACTION_ADD","type":"DOUBLE_HORIZONTAL","result":6,"cellNumbers":[14,15]}]}
1 change: 1 addition & 0 deletions gauguin-core/game_0-4x4-5536.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"variant":{"gridSize":{"width":4,"height":4},"options":{"showOperators":true,"cageOperation":"OPERATIONS_ALL","digitSetting":"FIRST_DIGIT_ONE","difficultySetting":"ANY","singleCageUsage":"FIXED_NUMBER","numeralSystem":"Decimal"}},"savedAtInMilliseconds":1728658463500,"playTimeInMilliseconds":0,"startedToBePlayed":true,"isActive":true,"cells":[{"cellNumber":0,"row":0,"column":0,"value":4,"userValue":2147483647,"possibles":[3,4]},{"cellNumber":1,"row":0,"column":1,"value":2,"userValue":2,"possibles":[]},{"cellNumber":2,"row":0,"column":2,"value":1,"userValue":1,"possibles":[]},{"cellNumber":3,"row":0,"column":3,"value":3,"userValue":2147483647,"possibles":[3,4]},{"cellNumber":4,"row":1,"column":0,"value":1,"userValue":2147483647,"possibles":[1,2]},{"cellNumber":5,"row":1,"column":1,"value":4,"userValue":2147483647,"possibles":[1,4]},{"cellNumber":6,"row":1,"column":2,"value":3,"userValue":3,"possibles":[]},{"cellNumber":7,"row":1,"column":3,"value":2,"userValue":2147483647,"possibles":[2,4]},{"cellNumber":8,"row":2,"column":0,"value":3,"userValue":2147483647,"possibles":[1,3]},{"cellNumber":9,"row":2,"column":1,"value":1,"userValue":2147483647,"possibles":[1,4]},{"cellNumber":10,"row":2,"column":2,"value":2,"userValue":2147483647,"possibles":[2,4]},{"cellNumber":11,"row":2,"column":3,"value":4,"userValue":2147483647,"possibles":[2,3,4]},{"cellNumber":12,"row":3,"column":0,"value":2,"userValue":2147483647,"possibles":[2,4]},{"cellNumber":13,"row":3,"column":1,"value":3,"userValue":3,"possibles":[]},{"cellNumber":14,"row":3,"column":2,"value":4,"userValue":2147483647,"possibles":[2,4]},{"cellNumber":15,"row":3,"column":3,"value":1,"userValue":1,"possibles":[]}],"selectedCellNumber":null,"invalidCellNumbers":[],"cheatedCellNumbers":[],"cages":[{"id":0,"action":"ACTION_NONE","type":"SINGLE","result":1,"cellNumbers":[15]},{"id":1,"action":"ACTION_NONE","type":"SINGLE","result":3,"cellNumbers":[6]},{"id":2,"action":"ACTION_ADD","type":"L_HORIZONTAL_SHORT_LEFT_BOTTOM","result":8,"cellNumbers":[0,1,2,4]},{"id":3,"action":"ACTION_MULTIPLY","type":"TRIPLE_VERTICAL","result":24,"cellNumbers":[3,7,11]},{"id":4,"action":"ACTION_DIVIDE","type":"DOUBLE_VERTICAL","result":4,"cellNumbers":[5,9]},{"id":5,"action":"ACTION_ADD","type":"ANGLE_RIGHT_TOP","result":8,"cellNumbers":[8,12,13]},{"id":6,"action":"ACTION_SUBTRACT","type":"DOUBLE_VERTICAL","result":2,"cellNumbers":[10,14]}]}
1 change: 1 addition & 0 deletions gauguin-core/game_0-4x4-6242.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"variant":{"gridSize":{"width":4,"height":4},"options":{"showOperators":true,"cageOperation":"OPERATIONS_ALL","digitSetting":"FIRST_DIGIT_ONE","difficultySetting":"ANY","singleCageUsage":"FIXED_NUMBER","numeralSystem":"Decimal"}},"savedAtInMilliseconds":1728658478215,"playTimeInMilliseconds":0,"startedToBePlayed":true,"isActive":true,"cells":[{"cellNumber":0,"row":0,"column":0,"value":3,"userValue":2147483647,"possibles":[1,3,4]},{"cellNumber":1,"row":0,"column":1,"value":4,"userValue":2147483647,"possibles":[1,4]},{"cellNumber":2,"row":0,"column":2,"value":1,"userValue":2147483647,"possibles":[1,3]},{"cellNumber":3,"row":0,"column":3,"value":2,"userValue":2,"possibles":[]},{"cellNumber":4,"row":1,"column":0,"value":4,"userValue":2147483647,"possibles":[2,3,4]},{"cellNumber":5,"row":1,"column":1,"value":2,"userValue":2147483647,"possibles":[1,2,4]},{"cellNumber":6,"row":1,"column":2,"value":3,"userValue":2147483647,"possibles":[1,3]},{"cellNumber":7,"row":1,"column":3,"value":1,"userValue":2147483647,"possibles":[1,3,4]},{"cellNumber":8,"row":2,"column":0,"value":2,"userValue":2147483647,"possibles":[2,3]},{"cellNumber":9,"row":2,"column":1,"value":1,"userValue":2147483647,"possibles":[1,2]},{"cellNumber":10,"row":2,"column":2,"value":4,"userValue":4,"possibles":[]},{"cellNumber":11,"row":2,"column":3,"value":3,"userValue":2147483647,"possibles":[1,3]},{"cellNumber":12,"row":3,"column":0,"value":1,"userValue":2147483647,"possibles":[1,4]},{"cellNumber":13,"row":3,"column":1,"value":3,"userValue":3,"possibles":[]},{"cellNumber":14,"row":3,"column":2,"value":2,"userValue":2,"possibles":[]},{"cellNumber":15,"row":3,"column":3,"value":4,"userValue":2147483647,"possibles":[1,4]}],"selectedCellNumber":null,"invalidCellNumbers":[],"cheatedCellNumbers":[],"cages":[{"id":0,"action":"ACTION_NONE","type":"SINGLE","result":2,"cellNumbers":[3]},{"id":1,"action":"ACTION_NONE","type":"SINGLE","result":4,"cellNumbers":[10]},{"id":2,"action":"ACTION_SUBTRACT","type":"DOUBLE_VERTICAL","result":1,"cellNumbers":[0,4]},{"id":3,"action":"ACTION_MULTIPLY","type":"TRIPLE_VERTICAL","result":8,"cellNumbers":[1,5,9]},{"id":4,"action":"ACTION_DIVIDE","type":"DOUBLE_VERTICAL","result":3,"cellNumbers":[2,6]},{"id":5,"action":"ACTION_MULTIPLY","type":"TRIPLE_VERTICAL","result":12,"cellNumbers":[7,11,15]},{"id":6,"action":"ACTION_SUBTRACT","type":"DOUBLE_VERTICAL","result":1,"cellNumbers":[8,12]},{"id":7,"action":"ACTION_SUBTRACT","type":"DOUBLE_HORIZONTAL","result":1,"cellNumbers":[13,14]}]}
1 change: 1 addition & 0 deletions gauguin-core/game_0-4x4-7591.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"variant":{"gridSize":{"width":4,"height":4},"options":{"showOperators":true,"cageOperation":"OPERATIONS_ALL","digitSetting":"FIRST_DIGIT_ONE","difficultySetting":"ANY","singleCageUsage":"FIXED_NUMBER","numeralSystem":"Decimal"}},"savedAtInMilliseconds":1728658506085,"playTimeInMilliseconds":0,"startedToBePlayed":true,"isActive":true,"cells":[{"cellNumber":0,"row":0,"column":0,"value":3,"userValue":3,"possibles":[]},{"cellNumber":1,"row":0,"column":1,"value":2,"userValue":2147483647,"possibles":[2,4]},{"cellNumber":2,"row":0,"column":2,"value":1,"userValue":1,"possibles":[]},{"cellNumber":3,"row":0,"column":3,"value":4,"userValue":2147483647,"possibles":[2,4]},{"cellNumber":4,"row":1,"column":0,"value":2,"userValue":2147483647,"possibles":[2,4]},{"cellNumber":5,"row":1,"column":1,"value":1,"userValue":1,"possibles":[]},{"cellNumber":6,"row":1,"column":2,"value":4,"userValue":2147483647,"possibles":[2,4]},{"cellNumber":7,"row":1,"column":3,"value":3,"userValue":3,"possibles":[]},{"cellNumber":8,"row":2,"column":0,"value":1,"userValue":2147483647,"possibles":[1,2]},{"cellNumber":9,"row":2,"column":1,"value":4,"userValue":2147483647,"possibles":[2,3,4]},{"cellNumber":10,"row":2,"column":2,"value":3,"userValue":2147483647,"possibles":[3,4]},{"cellNumber":11,"row":2,"column":3,"value":2,"userValue":2147483647,"possibles":[1,2,4]},{"cellNumber":12,"row":3,"column":0,"value":4,"userValue":2147483647,"possibles":[1,4]},{"cellNumber":13,"row":3,"column":1,"value":3,"userValue":2147483647,"possibles":[3,4]},{"cellNumber":14,"row":3,"column":2,"value":2,"userValue":2147483647,"possibles":[2,3]},{"cellNumber":15,"row":3,"column":3,"value":1,"userValue":2147483647,"possibles":[1,2]}],"selectedCellNumber":null,"invalidCellNumbers":[],"cheatedCellNumbers":[],"cages":[{"id":0,"action":"ACTION_NONE","type":"SINGLE","result":1,"cellNumbers":[5]},{"id":1,"action":"ACTION_NONE","type":"SINGLE","result":3,"cellNumbers":[0]},{"id":2,"action":"ACTION_ADD","type":"ANGLE_LEFT_BOTTOM","result":7,"cellNumbers":[1,2,6]},{"id":3,"action":"ACTION_SUBTRACT","type":"DOUBLE_VERTICAL","result":1,"cellNumbers":[3,7]},{"id":4,"action":"ACTION_MULTIPLY","type":"TRIPLE_VERTICAL","result":8,"cellNumbers":[4,8,12]},{"id":5,"action":"ACTION_ADD","type":"L_HORIZONTAL_SHORT_LEFT_BOTTOM","result":12,"cellNumbers":[9,10,11,13]},{"id":6,"action":"ACTION_SUBTRACT","type":"DOUBLE_HORIZONTAL","result":1,"cellNumbers":[14,15]}]}
1 change: 1 addition & 0 deletions gauguin-core/game_0-4x4-7657.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"variant":{"gridSize":{"width":4,"height":4},"options":{"showOperators":true,"cageOperation":"OPERATIONS_ALL","digitSetting":"FIRST_DIGIT_ONE","difficultySetting":"ANY","singleCageUsage":"FIXED_NUMBER","numeralSystem":"Decimal"}},"savedAtInMilliseconds":1728658507698,"playTimeInMilliseconds":0,"startedToBePlayed":true,"isActive":true,"cells":[{"cellNumber":0,"row":0,"column":0,"value":2,"userValue":2147483647,"possibles":[2,4]},{"cellNumber":1,"row":0,"column":1,"value":4,"userValue":2147483647,"possibles":[1,2,4]},{"cellNumber":2,"row":0,"column":2,"value":1,"userValue":2147483647,"possibles":[1,2]},{"cellNumber":3,"row":0,"column":3,"value":3,"userValue":3,"possibles":[]},{"cellNumber":4,"row":1,"column":0,"value":1,"userValue":1,"possibles":[]},{"cellNumber":5,"row":1,"column":1,"value":3,"userValue":2147483647,"possibles":[3,4]},{"cellNumber":6,"row":1,"column":2,"value":4,"userValue":2147483647,"possibles":[2,3,4]},{"cellNumber":7,"row":1,"column":3,"value":2,"userValue":2147483647,"possibles":[2,4]},{"cellNumber":8,"row":2,"column":0,"value":4,"userValue":2147483647,"possibles":[2,3,4]},{"cellNumber":9,"row":2,"column":1,"value":2,"userValue":2147483647,"possibles":[1,2,3,4]},{"cellNumber":10,"row":2,"column":2,"value":3,"userValue":2147483647,"possibles":[1,2,3,4]},{"cellNumber":11,"row":2,"column":3,"value":1,"userValue":2147483647,"possibles":[1,2,4]},{"cellNumber":12,"row":3,"column":0,"value":3,"userValue":2147483647,"possibles":[2,3,4]},{"cellNumber":13,"row":3,"column":1,"value":1,"userValue":2147483647,"possibles":[1,2,3,4]},{"cellNumber":14,"row":3,"column":2,"value":2,"userValue":2147483647,"possibles":[1,2,3,4]},{"cellNumber":15,"row":3,"column":3,"value":4,"userValue":2147483647,"possibles":[1,2,4]}],"selectedCellNumber":null,"invalidCellNumbers":[],"cheatedCellNumbers":[],"cages":[{"id":0,"action":"ACTION_NONE","type":"SINGLE","result":1,"cellNumbers":[4]},{"id":1,"action":"ACTION_NONE","type":"SINGLE","result":3,"cellNumbers":[3]},{"id":2,"action":"ACTION_ADD","type":"ANGLE_LEFT_BOTTOM","result":9,"cellNumbers":[0,1,5]},{"id":3,"action":"ACTION_ADD","type":"L_VERTICAL_SHORT_LEFT_BOTTOM","result":10,"cellNumbers":[2,6,10,9]},{"id":4,"action":"ACTION_MULTIPLY","type":"TRIPLE_VERTICAL","result":8,"cellNumbers":[7,11,15]},{"id":5,"action":"ACTION_SUBTRACT","type":"DOUBLE_VERTICAL","result":1,"cellNumbers":[8,12]},{"id":6,"action":"ACTION_SUBTRACT","type":"DOUBLE_HORIZONTAL","result":1,"cellNumbers":[13,14]}]}
1 change: 1 addition & 0 deletions gauguin-core/game_0-4x4-8129.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"variant":{"gridSize":{"width":4,"height":4},"options":{"showOperators":true,"cageOperation":"OPERATIONS_ALL","digitSetting":"FIRST_DIGIT_ONE","difficultySetting":"ANY","singleCageUsage":"FIXED_NUMBER","numeralSystem":"Decimal"}},"savedAtInMilliseconds":1728658517119,"playTimeInMilliseconds":0,"startedToBePlayed":true,"isActive":true,"cells":[{"cellNumber":0,"row":0,"column":0,"value":2,"userValue":2,"possibles":[]},{"cellNumber":1,"row":0,"column":1,"value":1,"userValue":2147483647,"possibles":[1,3,4]},{"cellNumber":2,"row":0,"column":2,"value":3,"userValue":2147483647,"possibles":[1,3,4]},{"cellNumber":3,"row":0,"column":3,"value":4,"userValue":2147483647,"possibles":[3,4]},{"cellNumber":4,"row":1,"column":0,"value":1,"userValue":2147483647,"possibles":[1,3]},{"cellNumber":5,"row":1,"column":1,"value":4,"userValue":2147483647,"possibles":[1,2,3,4]},{"cellNumber":6,"row":1,"column":2,"value":2,"userValue":2147483647,"possibles":[1,2,3,4]},{"cellNumber":7,"row":1,"column":3,"value":3,"userValue":2147483647,"possibles":[2,3,4]},{"cellNumber":8,"row":2,"column":0,"value":3,"userValue":2147483647,"possibles":[3,4]},{"cellNumber":9,"row":2,"column":1,"value":2,"userValue":2147483647,"possibles":[2,3,4]},{"cellNumber":10,"row":2,"column":2,"value":4,"userValue":2147483647,"possibles":[2,4]},{"cellNumber":11,"row":2,"column":3,"value":1,"userValue":1,"possibles":[]},{"cellNumber":12,"row":3,"column":0,"value":4,"userValue":2147483647,"possibles":[1,3,4]},{"cellNumber":13,"row":3,"column":1,"value":3,"userValue":2147483647,"possibles":[1,2,3,4]},{"cellNumber":14,"row":3,"column":2,"value":1,"userValue":2147483647,"possibles":[1,3]},{"cellNumber":15,"row":3,"column":3,"value":2,"userValue":2147483647,"possibles":[2,4]}],"selectedCellNumber":null,"invalidCellNumbers":[],"cheatedCellNumbers":[],"cages":[{"id":0,"action":"ACTION_NONE","type":"SINGLE","result":2,"cellNumbers":[0]},{"id":1,"action":"ACTION_NONE","type":"SINGLE","result":1,"cellNumbers":[11]},{"id":2,"action":"ACTION_ADD","type":"SQUARE","result":10,"cellNumbers":[1,2,5,6]},{"id":3,"action":"ACTION_SUBTRACT","type":"DOUBLE_VERTICAL","result":1,"cellNumbers":[3,7]},{"id":4,"action":"ACTION_ADD","type":"TRIPLE_VERTICAL","result":8,"cellNumbers":[4,8,12]},{"id":5,"action":"ACTION_SUBTRACT","type":"DOUBLE_VERTICAL","result":1,"cellNumbers":[9,13]},{"id":6,"action":"ACTION_ADD","type":"ANGLE_RIGHT_TOP","result":7,"cellNumbers":[10,14,15]}]}
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import io.kotest.assertions.withClue
import io.kotest.core.spec.style.FunSpec
import io.kotest.matchers.ints.shouldBeGreaterThan
import io.kotest.matchers.shouldBe
import org.piepmeyer.gauguin.creation.MergingCageGridCalculator
import org.piepmeyer.gauguin.creation.RandomCageGridCalculator
import org.piepmeyer.gauguin.creation.RandomPossibleDigitsShuffler
import org.piepmeyer.gauguin.creation.SeedRandomizerMock
import org.piepmeyer.gauguin.game.save.SaveGame
Expand All @@ -16,15 +16,15 @@ import java.io.File
class HumanDifficultySolverTest :
FunSpec({
for (seed in 0..9999) {
// 10_000 of 4x4, random: 19 left unsolved
// 10_000 of 4x4, random: 6 left unsolved
// 10_000 of 4x4, merge: 27 left unsolved
// 10_000 of 5x5, merge: 153 left unsolved
withClue("seed $seed") {
test("seed random grid should be solved") {
val randomizer = SeedRandomizerMock(seed)

val calculator =
MergingCageGridCalculator(
RandomCageGridCalculator(
GameVariant(
GridSize(4, 4),
GameOptionsVariant.createClassic(),
Expand Down

0 comments on commit fc0ae19

Please sign in to comment.