Skip to content

Commit

Permalink
Adds sample grids dealing with balancing the human solver algorithm
Browse files Browse the repository at this point in the history
  • Loading branch information
meikpiep committed Jan 1, 2025
1 parent 8f64c92 commit ff924d5
Show file tree
Hide file tree
Showing 40 changed files with 93 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
package org.piepmeyer.gauguin.difficulty.human

import io.github.oshai.kotlinlogging.KotlinLogging
import io.kotest.assertions.withClue
import io.kotest.core.spec.style.FunSpec
import io.kotest.matchers.shouldBe
import org.piepmeyer.gauguin.game.save.SaveGame
import java.io.File
import java.nio.file.Files
import java.util.stream.Collectors
import kotlin.io.path.isDirectory
import kotlin.io.path.name

private val logger = KotlinLogging.logger {}

class HumanDifficultyBalanceTest :
FunSpec({
xtest("balancing") {
val savedGames =
Files
.list(File("src/test/resources/difficulty-balancing").toPath())
.collect(Collectors.toList())
.filter { !it.isDirectory() }

val namesToGrids =
savedGames
.associateWith {
val grid = SaveGame.createWithFile(it.toFile()).restore()!!
grid.clearUserValues()
grid.addPossiblesAtNewGame()

grid
}.mapKeys { it.key.name }

val namesToDifficulties =
namesToGrids.mapValues {
logger.info { it.key + "..." }

val result = HumanSolver(it.value).solveAndCalculateDifficulty()

withClue(it.key) {
result.success shouldBe true
}

result.difficulty
}

namesToDifficulties.entries
.sortedBy { it.value }
.forEach {
logger.info { "${it.value} -> ${it.key}" }
}
}
})
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"variant":{"gridSize":{"width":3,"height":3},"options":{"showOperators":true,"cageOperation":"OPERATIONS_ALL","digitSetting":"FIRST_DIGIT_ONE","difficultySetting":"EXTREME","singleCageUsage":"NO_SINGLE_CAGES","numeralSystem":"Decimal"}},"savedAtInMilliseconds":1723225807344,"playTimeInMilliseconds":26563,"startedToBePlayed":true,"isActive":false,"cells":[{"cellNumber":0,"row":0,"column":0,"value":1,"userValue":1,"possibles":[]},{"cellNumber":1,"row":0,"column":1,"value":2,"userValue":2,"possibles":[]},{"cellNumber":2,"row":0,"column":2,"value":3,"userValue":3,"possibles":[]},{"cellNumber":3,"row":1,"column":0,"value":2,"userValue":2,"possibles":[]},{"cellNumber":4,"row":1,"column":1,"value":3,"userValue":3,"possibles":[]},{"cellNumber":5,"row":1,"column":2,"value":1,"userValue":1,"possibles":[]},{"cellNumber":6,"row":2,"column":0,"value":3,"userValue":3,"possibles":[]},{"cellNumber":7,"row":2,"column":1,"value":1,"userValue":1,"possibles":[]},{"cellNumber":8,"row":2,"column":2,"value":2,"userValue":2,"possibles":[]}],"selectedCellNumber":0,"invalidCellNumbers":[],"cheatedCellNumbers":[],"cages":[{"id":0,"action":"ACTION_MULTIPLY","type":"ANGLE_RIGHT_TOP","result":6,"cellNumbers":[0,3,4]},{"id":1,"action":"ACTION_MULTIPLY","type":"DOUBLE_HORIZONTAL","result":6,"cellNumbers":[1,2]},{"id":2,"action":"ACTION_SUBTRACT","type":"DOUBLE_VERTICAL","result":1,"cellNumbers":[5,8]},{"id":3,"action":"ACTION_DIVIDE","type":"DOUBLE_HORIZONTAL","result":3,"cellNumbers":[6,7]}]}
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"variant":{"gridSize":{"width":3,"height":3},"options":{"showOperators":true,"cageOperation":"OPERATIONS_ALL","digitSetting":"FIRST_DIGIT_ONE","difficultySetting":"EXTREME","singleCageUsage":"FIXED_NUMBER","numeralSystem":"Decimal"}},"savedAtInMilliseconds":1723225631857,"playTimeInMilliseconds":27047,"startedToBePlayed":true,"isActive":false,"cells":[{"cellNumber":0,"row":0,"column":0,"value":3,"userValue":3,"possibles":[]},{"cellNumber":1,"row":0,"column":1,"value":1,"userValue":1,"possibles":[]},{"cellNumber":2,"row":0,"column":2,"value":2,"userValue":2,"possibles":[]},{"cellNumber":3,"row":1,"column":0,"value":2,"userValue":2,"possibles":[]},{"cellNumber":4,"row":1,"column":1,"value":3,"userValue":3,"possibles":[]},{"cellNumber":5,"row":1,"column":2,"value":1,"userValue":1,"possibles":[]},{"cellNumber":6,"row":2,"column":0,"value":1,"userValue":1,"possibles":[]},{"cellNumber":7,"row":2,"column":1,"value":2,"userValue":2,"possibles":[]},{"cellNumber":8,"row":2,"column":2,"value":3,"userValue":3,"possibles":[]}],"selectedCellNumber":8,"invalidCellNumbers":[],"cheatedCellNumbers":[],"cages":[{"id":0,"action":"ACTION_ADD","type":"TRIPLE_VERTICAL","result":6,"cellNumbers":[2,5,8]},{"id":1,"action":"ACTION_MULTIPLY","type":"ANGLE_RIGHT_TOP","result":4,"cellNumbers":[3,6,7]},{"id":2,"action":"ACTION_ADD","type":"ANGLE_LEFT_BOTTOM","result":7,"cellNumbers":[0,1,4]}]}
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"variant":{"gridSize":{"width":3,"height":5},"options":{"showOperators":true,"cageOperation":"OPERATIONS_ALL","digitSetting":"FIRST_DIGIT_ONE","difficultySetting":"EXTREME","singleCageUsage":"FIXED_NUMBER","numeralSystem":"Decimal"}},"savedAtInMilliseconds":1723272996505,"playTimeInMilliseconds":3527,"startedToBePlayed":true,"isActive":true,"cells":[{"cellNumber":0,"row":0,"column":0,"value":3,"userValue":2147483647,"possibles":[]},{"cellNumber":1,"row":0,"column":1,"value":2,"userValue":2147483647,"possibles":[]},{"cellNumber":2,"row":0,"column":2,"value":4,"userValue":2147483647,"possibles":[]},{"cellNumber":3,"row":1,"column":0,"value":1,"userValue":2147483647,"possibles":[]},{"cellNumber":4,"row":1,"column":1,"value":3,"userValue":2147483647,"possibles":[]},{"cellNumber":5,"row":1,"column":2,"value":2,"userValue":2147483647,"possibles":[]},{"cellNumber":6,"row":2,"column":0,"value":2,"userValue":2147483647,"possibles":[]},{"cellNumber":7,"row":2,"column":1,"value":4,"userValue":2147483647,"possibles":[]},{"cellNumber":8,"row":2,"column":2,"value":5,"userValue":2147483647,"possibles":[]},{"cellNumber":9,"row":3,"column":0,"value":5,"userValue":2147483647,"possibles":[]},{"cellNumber":10,"row":3,"column":1,"value":1,"userValue":2147483647,"possibles":[]},{"cellNumber":11,"row":3,"column":2,"value":3,"userValue":2147483647,"possibles":[]},{"cellNumber":12,"row":4,"column":0,"value":4,"userValue":2147483647,"possibles":[]},{"cellNumber":13,"row":4,"column":1,"value":5,"userValue":2147483647,"possibles":[]},{"cellNumber":14,"row":4,"column":2,"value":1,"userValue":2147483647,"possibles":[]}],"selectedCellNumber":null,"invalidCellNumbers":[],"cheatedCellNumbers":[],"cages":[{"id":0,"action":"ACTION_NONE","type":"SINGLE","result":3,"cellNumbers":[4]},{"id":1,"action":"ACTION_MULTIPLY","type":"DOUBLE_VERTICAL","result":2,"cellNumbers":[3,6]},{"id":2,"action":"ACTION_MULTIPLY","type":"DOUBLE_HORIZONTAL","result":20,"cellNumbers":[7,8]},{"id":3,"action":"ACTION_MULTIPLY","type":"ANGLE_LEFT_TOP","result":15,"cellNumbers":[11,14,13]},{"id":4,"action":"ACTION_ADD","type":"ANGLE_RIGHT_BOTTOM","result":10,"cellNumbers":[9,10,12]},{"id":5,"action":"ACTION_MULTIPLY","type":"L_HORIZONTAL_SHORT_RIGHT_BOTTOM","result":48,"cellNumbers":[0,1,2,5]}]}
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":1722159495623,"playTimeInMilliseconds":0,"startedToBePlayed":true,"isActive":true,"cells":[{"cellNumber":0,"row":0,"column":0,"value":1,"userValue":2147483647,"possibles":[1,2,3]},{"cellNumber":1,"row":0,"column":1,"value":3,"userValue":2147483647,"possibles":[2,3,4]},{"cellNumber":2,"row":0,"column":2,"value":2,"userValue":2147483647,"possibles":[1,2,3]},{"cellNumber":3,"row":0,"column":3,"value":4,"userValue":2147483647,"possibles":[1,2,3,4]},{"cellNumber":4,"row":1,"column":0,"value":3,"userValue":2147483647,"possibles":[1,2,3]},{"cellNumber":5,"row":1,"column":1,"value":2,"userValue":2147483647,"possibles":[2,3]},{"cellNumber":6,"row":1,"column":2,"value":4,"userValue":4,"possibles":[]},{"cellNumber":7,"row":1,"column":3,"value":1,"userValue":2147483647,"possibles":[1,2,3]},{"cellNumber":8,"row":2,"column":0,"value":4,"userValue":2147483647,"possibles":[3,4]},{"cellNumber":9,"row":2,"column":1,"value":1,"userValue":1,"possibles":[]},{"cellNumber":10,"row":2,"column":2,"value":3,"userValue":2147483647,"possibles":[2,3]},{"cellNumber":11,"row":2,"column":3,"value":2,"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":4,"userValue":2147483647,"possibles":[3,4]},{"cellNumber":14,"row":3,"column":2,"value":1,"userValue":2147483647,"possibles":[1,3]},{"cellNumber":15,"row":3,"column":3,"value":3,"userValue":2147483647,"possibles":[1,2,3]}],"selectedCellNumber":null,"invalidCellNumbers":[],"cheatedCellNumbers":[],"cages":[{"id":0,"action":"ACTION_NONE","type":"SINGLE","result":4,"cellNumbers":[6]},{"id":1,"action":"ACTION_NONE","type":"SINGLE","result":1,"cellNumbers":[9]},{"id":2,"action":"ACTION_ADD","type":"ANGLE_RIGHT_TOP","result":6,"cellNumbers":[0,4,5]},{"id":3,"action":"ACTION_ADD","type":"L_HORIZONTAL_SHORT_RIGHT_BOTTOM","result":10,"cellNumbers":[1,2,3,7]},{"id":4,"action":"ACTION_ADD","type":"ANGLE_RIGHT_TOP","result":10,"cellNumbers":[8,12,13]},{"id":5,"action":"ACTION_ADD","type":"SQUARE","result":9,"cellNumbers":[10,11,14,15]}]}
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":1722159539505,"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]}]}
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":"EXTREME","singleCageUsage":"FIXED_NUMBER","numeralSystem":"Decimal"}},"savedAtInMilliseconds":1722160870079,"playTimeInMilliseconds":103732,"startedToBePlayed":true,"isActive":true,"cells":[{"cellNumber":0,"row":0,"column":0,"value":4,"userValue":2147483647,"possibles":[]},{"cellNumber":1,"row":0,"column":1,"value":2,"userValue":2147483647,"possibles":[]},{"cellNumber":2,"row":0,"column":2,"value":1,"userValue":2147483647,"possibles":[]},{"cellNumber":3,"row":0,"column":3,"value":3,"userValue":2147483647,"possibles":[]},{"cellNumber":4,"row":1,"column":0,"value":3,"userValue":2147483647,"possibles":[]},{"cellNumber":5,"row":1,"column":1,"value":1,"userValue":2147483647,"possibles":[]},{"cellNumber":6,"row":1,"column":2,"value":2,"userValue":2147483647,"possibles":[]},{"cellNumber":7,"row":1,"column":3,"value":4,"userValue":2147483647,"possibles":[]},{"cellNumber":8,"row":2,"column":0,"value":1,"userValue":2147483647,"possibles":[]},{"cellNumber":9,"row":2,"column":1,"value":3,"userValue":2147483647,"possibles":[]},{"cellNumber":10,"row":2,"column":2,"value":4,"userValue":2147483647,"possibles":[3]},{"cellNumber":11,"row":2,"column":3,"value":2,"userValue":2147483647,"possibles":[]},{"cellNumber":12,"row":3,"column":0,"value":2,"userValue":2147483647,"possibles":[]},{"cellNumber":13,"row":3,"column":1,"value":4,"userValue":2147483647,"possibles":[3]},{"cellNumber":14,"row":3,"column":2,"value":3,"userValue":2147483647,"possibles":[3]},{"cellNumber":15,"row":3,"column":3,"value":1,"userValue":2147483647,"possibles":[3]}],"selectedCellNumber":13,"invalidCellNumbers":[],"cheatedCellNumbers":[],"cages":[{"id":0,"action":"ACTION_ADD","type":"TETRIS_T_LEFT_UP","result":9,"cellNumbers":[4,8,9,12]},{"id":1,"action":"ACTION_ADD","type":"TETRIS_T","result":8,"cellNumbers":[0,1,2,5]},{"id":2,"action":"ACTION_ADD","type":"TETRIS_T_RIGHT_UP","result":11,"cellNumbers":[3,6,7,11]},{"id":3,"action":"ACTION_MULTIPLY","type":"TETRIS_T_BOTTOM_UP","result":48,"cellNumbers":[10,13,14,15]}]}
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":"EXTREME","singleCageUsage":"FIXED_NUMBER","numeralSystem":"Decimal"}},"savedAtInMilliseconds":1723710949433,"playTimeInMilliseconds":150954,"startedToBePlayed":true,"isActive":false,"cells":[{"cellNumber":0,"row":0,"column":0,"value":2,"userValue":2,"possibles":[]},{"cellNumber":1,"row":0,"column":1,"value":3,"userValue":3,"possibles":[]},{"cellNumber":2,"row":0,"column":2,"value":1,"userValue":1,"possibles":[]},{"cellNumber":3,"row":0,"column":3,"value":4,"userValue":4,"possibles":[]},{"cellNumber":4,"row":1,"column":0,"value":4,"userValue":4,"possibles":[]},{"cellNumber":5,"row":1,"column":1,"value":1,"userValue":1,"possibles":[]},{"cellNumber":6,"row":1,"column":2,"value":2,"userValue":2,"possibles":[]},{"cellNumber":7,"row":1,"column":3,"value":3,"userValue":3,"possibles":[]},{"cellNumber":8,"row":2,"column":0,"value":3,"userValue":3,"possibles":[]},{"cellNumber":9,"row":2,"column":1,"value":2,"userValue":2,"possibles":[]},{"cellNumber":10,"row":2,"column":2,"value":4,"userValue":4,"possibles":[]},{"cellNumber":11,"row":2,"column":3,"value":1,"userValue":1,"possibles":[]},{"cellNumber":12,"row":3,"column":0,"value":1,"userValue":1,"possibles":[]},{"cellNumber":13,"row":3,"column":1,"value":4,"userValue":4,"possibles":[]},{"cellNumber":14,"row":3,"column":2,"value":3,"userValue":3,"possibles":[]},{"cellNumber":15,"row":3,"column":3,"value":2,"userValue":2,"possibles":[]}],"selectedCellNumber":4,"invalidCellNumbers":[],"cheatedCellNumbers":[],"cages":[{"id":0,"action":"ACTION_SUBTRACT","type":"DOUBLE_VERTICAL","result":1,"cellNumbers":[3,7]},{"id":1,"action":"ACTION_DIVIDE","type":"DOUBLE_HORIZONTAL","result":2,"cellNumbers":[9,10]},{"id":2,"action":"ACTION_MULTIPLY","type":"L_VERTICAL_SHORT_RIGHT_TOP","result":12,"cellNumbers":[4,8,12,5]},{"id":3,"action":"ACTION_ADD","type":"L_HORIZONTAL_SHORT_RIGHT_BOTTOM","result":8,"cellNumbers":[0,1,2,6]},{"id":4,"action":"ACTION_MULTIPLY","type":"L_HORIZONTAL_SHORT_RIGHT_TOP","result":24,"cellNumbers":[11,13,14,15]}]}
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":1723385002222,"playTimeInMilliseconds":116955,"startedToBePlayed":true,"isActive":true,"cells":[{"cellNumber":0,"row":0,"column":0,"value":4,"userValue":2147483647,"possibles":[2,4]},{"cellNumber":1,"row":0,"column":1,"value":1,"userValue":2147483647,"possibles":[1,3]},{"cellNumber":2,"row":0,"column":2,"value":2,"userValue":2147483647,"possibles":[1,2]},{"cellNumber":3,"row":0,"column":3,"value":3,"userValue":2147483647,"possibles":[3,4]},{"cellNumber":4,"row":1,"column":0,"value":1,"userValue":1,"possibles":[]},{"cellNumber":5,"row":1,"column":1,"value":3,"userValue":2147483647,"possibles":[2,3]},{"cellNumber":6,"row":1,"column":2,"value":4,"userValue":4,"possibles":[]},{"cellNumber":7,"row":1,"column":3,"value":2,"userValue":2147483647,"possibles":[2,3]},{"cellNumber":8,"row":2,"column":0,"value":3,"userValue":3,"possibles":[]},{"cellNumber":9,"row":2,"column":1,"value":2,"userValue":2147483647,"possibles":[1,2,4]},{"cellNumber":10,"row":2,"column":2,"value":1,"userValue":2147483647,"possibles":[1,2]},{"cellNumber":11,"row":2,"column":3,"value":4,"userValue":2147483647,"possibles":[2,4]},{"cellNumber":12,"row":3,"column":0,"value":2,"userValue":2147483647,"possibles":[2,4]},{"cellNumber":13,"row":3,"column":1,"value":4,"userValue":2147483647,"possibles":[2,4]},{"cellNumber":14,"row":3,"column":2,"value":3,"userValue":3,"possibles":[]},{"cellNumber":15,"row":3,"column":3,"value":1,"userValue":1,"possibles":[]}],"selectedCellNumber":12,"invalidCellNumbers":[],"cheatedCellNumbers":[],"cages":[{"id":0,"action":"ACTION_NONE","type":"SINGLE","result":4,"cellNumbers":[6]},{"id":1,"action":"ACTION_NONE","type":"SINGLE","result":3,"cellNumbers":[8]},{"id":2,"action":"ACTION_MULTIPLY","type":"SQUARE","result":12,"cellNumbers":[0,1,4,5]},{"id":3,"action":"ACTION_MULTIPLY","type":"ANGLE_LEFT_BOTTOM","result":12,"cellNumbers":[2,3,7]},{"id":4,"action":"ACTION_ADD","type":"L_HORIZONTAL_SHORT_RIGHT_BOTTOM","result":8,"cellNumbers":[9,10,11,15]},{"id":5,"action":"ACTION_MULTIPLY","type":"TRIPLE_HORIZONTAL","result":24,"cellNumbers":[12,13,14]}]}
Loading

0 comments on commit ff924d5

Please sign in to comment.