Skip to content

Commit

Permalink
Migrate mass difficulty ratings file from GameVariant to GameDifficul…
Browse files Browse the repository at this point in the history
…tyVariant

Includes calculation of all 3x3 grid variant with numbers 'from 1 on' aka '1...'.
  • Loading branch information
meikpiep committed Jan 2, 2024
1 parent b6afe39 commit a973f91
Show file tree
Hide file tree
Showing 5 changed files with 29,648 additions and 13,324 deletions.
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
package org.piepmeyer.gauguin.creation

import kotlinx.serialization.Serializable
import org.piepmeyer.gauguin.options.GameVariant
import org.piepmeyer.gauguin.difficulty.GameDifficultyVariant

@Serializable
data class GameVariantMassDifficultyItem(
val variant: GameVariant,
val variant: GameDifficultyVariant,
val calculatedDifficulties: List<Double>
)
Original file line number Diff line number Diff line change
Expand Up @@ -40,19 +40,19 @@ class TestGridDifficultyMassCalculation : FunSpec({

val result = Json { prettyPrint = true }.encodeToString(groupedItems)

File("temp.yml").writeText(result)
File("mass-difficulties.yml").writeText(result)
}
}
})

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

for (size in listOf(2)) {
for (showOperators in listOf(true)) {
for (size in listOf(3)) {
for (showOperators in listOf(true, false)) {
for (cageOperation in GridCageOperation.entries) {
for (singleCageUsage in listOf(SingleCageUsage.DYNAMIC, SingleCageUsage.FIXED_NUMBER)) {
for (singleCageUsage in SingleCageUsage.entries) {
val variant = GameVariant(
GridSize(size, size),
GameOptionsVariant(
Expand All @@ -69,7 +69,7 @@ private suspend fun calculateDifficulties(): List<Deferred<Pair<GameVariant, Dou

for (i in 0..999) {
deferreds += async(CoroutineName(variant.toString())) {
calculateOneDifficulty(variant, creator)
calculateOneDifficulty(GameDifficultyVariant.fromGameVariant(variant), creator)
}
}
}
Expand All @@ -81,9 +81,9 @@ private suspend fun calculateDifficulties(): List<Deferred<Pair<GameVariant, Dou
}

private suspend fun calculateOneDifficulty(
variant: GameVariant,
variant: GameDifficultyVariant,
creator: GridCalculator
): Pair<GameVariant, Double> {
): Pair<GameDifficultyVariant, Double> {
println("starting variant $variant")

val grid = creator.calculate()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ class TestGridDifficultyMassCalculationAnalysis : FunSpec({
val hart = round(difficulties[666])
val extreme = round(difficulties[950])

GameDifficultyRating(GameDifficultyVariant.fromGameVariant(entry.variant), easy, medium, hart, extreme)
GameDifficultyRating(entry.variant, easy, medium, hart, extreme)
}

val result = Json { prettyPrint = true }.encodeToString(difficultyRatings)
Expand Down
Loading

0 comments on commit a973f91

Please sign in to comment.