Skip to content

Commit

Permalink
Add difficulty level calculation of all 3x3 grid variants
Browse files Browse the repository at this point in the history
  • Loading branch information
meikpiep committed Jan 2, 2024
1 parent a973f91 commit c3b6dd9
Show file tree
Hide file tree
Showing 4 changed files with 172,664 additions and 24,340 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -46,30 +46,34 @@ class TestGridDifficultyMassCalculation : FunSpec({
})

private suspend fun calculateDifficulties(): List<Deferred<Pair<GameDifficultyVariant, Double>>> = kotlinx.coroutines.coroutineScope {
val digitSetting = DigitSetting.FIRST_DIGIT_ONE
val deferreds = mutableListOf<Deferred<Pair<GameDifficultyVariant, Double>>>()

for (size in listOf(3)) {
for (showOperators in listOf(true, false)) {
for (cageOperation in GridCageOperation.entries) {
for (singleCageUsage in SingleCageUsage.entries) {
val variant = GameVariant(
GridSize(size, size),
GameOptionsVariant(
showOperators,
cageOperation,
digitSetting,
DifficultySetting.ANY,
singleCageUsage,
NumeralSystem.Decimal
for (digitSetting in DigitSetting.entries) {
for (showOperators in listOf(true, false)) {
for (cageOperation in GridCageOperation.entries) {
for (singleCageUsage in SingleCageUsage.entries) {
val variant = GameVariant(
GridSize(size, size),
GameOptionsVariant(
showOperators,
cageOperation,
digitSetting,
DifficultySetting.ANY,
singleCageUsage,
NumeralSystem.Decimal
)
)
)

val creator = GridCalculator(variant)
val creator = GridCalculator(variant)

for (i in 0..999) {
deferreds += async(CoroutineName(variant.toString())) {
calculateOneDifficulty(GameDifficultyVariant.fromGameVariant(variant), creator)
for (i in 0..999) {
deferreds += async(CoroutineName(variant.toString())) {
calculateOneDifficulty(
GameDifficultyVariant.fromGameVariant(variant),
creator
)
}
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import java.io.File
import kotlin.math.roundToInt

class TestGridDifficultyMassCalculationAnalysis : FunSpec({
xtest("calculateValues") {
test("calculateValues") {
val calculatedDifficulties = resourceAsString("/org/piepmeyer/gauguin/difficulty/mass-difficulties.yml")

val entries = Json.decodeFromString<List<GameVariantMassDifficultyItem>>(calculatedDifficulties)
Expand Down
Loading

0 comments on commit c3b6dd9

Please sign in to comment.