Skip to content

Klondike (Patience) Solitaire Solver that finds minimal length solutions.

License

Notifications You must be signed in to change notification settings

Aragorn450/Klondike-Solver

 
 

Repository files navigation

Klondike-Solver
===============

Klondike (Patience) Solver that finds minimal length solutions.

KlondikeSolver [/DC #] [/M #] [/O #] [/MVS] [/S #] [/RC #] [/R] [/F] [/D] [/G] [Path]

  /DRAW # [/DC #]       Sets the draw count to use when solving. Defaults to 1.

  /MULTI # [/M #]       Uses # threads to solve deals. Only works when solving minimally.

  /OUT # [/O #]         Sets the output method of the solver. Defaults to 0, 1 for Pysol, and 2 for minimal output.

  /MOVES [/MVS]         Will also output a compact list of moves made when a solution is found.

  /STATES # [/S #]      Sets the maximum number of game states to evaluate before terminating. Defaults to 5,000,000.

  /ROUND # [/RC #]      Sets the maximum number of round(s). Defaults to 24.

  /REPLAY [/R]          Replays solution to output if one is found.
  /FAST [/F]            Run the solver in a best attempt mode, which is faster, but not guaranteed to give minimal solution.

  /DECK str [/D str]    Loads the deck specified by the string.

  /GAME # [/G #]        Loads a random game with seed #.

  Path                  Solves deals specified in the file.

========================
NOTES:

The Deck format is in the order a deck of cards is dealt to the board. Each card is represented by a 3 digit long numerical character. The first two digits are the value of the card:
01 for an ace, 02 for a 2, 11 for a jack, 13 for a king. The third digit represents the suit. 1 for hearts, 2 for spades, 3 for diamonds, 4 for clubs.
Therefore an Ace of spaces is 012. A 4 of diamonds is represented by 043.

When using the /MOVES command, the program will produce the moves neccesary such that you could execute the winning condition. The codex for moves is as follows:
	DR# is a draw move that is done # number of times. ie) DR2 means draw twice, if draw count is greater than 1 (3 for instance) it is still DR2, but in the case of a draw count of 3, you would flip 6 cards.
	NEW is to represent the moving of cards from the Waste pile back to the stock pile. A New round.
	F# means to flip the card on tableau pile #.
	XY means to move the top card from pile X to pile Y.
		X will be 1 through 7, W for Waste, or a foundation suit character. 'C'lubs, 'D'iamonds, 'S'pades, 'H'earts
		Y will be 1 through 7 or the foundation suit character.
	XY-# is the same as above except you are moving # number of cards from X to Y.

About

Klondike (Patience) Solitaire Solver that finds minimal length solutions.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 81.2%
  • Python 18.0%
  • Other 0.8%