First time seeing this in KPatience. The game shouldn’t even start if it isn’t solvable though but it’s something.

  • palordrolap@fedia.io
    link
    fedilink
    arrow-up
    3
    ·
    5 hours ago

    It’s also my experience that KPatience doesn’t skip unwinnable games. It also occasionally generates one where it can’t determine whether the game is solvable or not, which is probably due to search space limitations. I’ve won a couple of those, but they’re risky to start in the first place!

    I can see the logic for not skipping unsolvable games.

    KPat uses a seed system (called “Numbered Deals”) to “shuffle” the cards before a game. The seed can be generated (pseudo-)randomly, which is the default, or entered manually. In theory, a manually-entered seed could be unsolvable, and there would then need to be completely different logic flow for random and manual seeds after the shuffle and deal.

    It’s way simpler to just generate a new game seed randomly as necessary and then have the rest of the program be clueless as to whether it was typed in or not.

    • muhyb@programming.devOP
      link
      fedilink
      arrow-up
      2
      ·
      5 hours ago

      It also occasionally generates one where it can’t determine whether the game is solvable or not, which is probably due to search space limitations. I’ve won a couple of those, but they’re risky to start in the first place!

      I kinda like those. I’ve also won couple of them and one of them was quite close to a win and it was always unwinnable at the very last parts (I tried the same seed 3-4 times).

      Yeah, I get the logic and with the current system it might cause a long start if it runs into a bad string since it should also skip undeterminable games. Maybe someone should rewrite it in Rust. /j