1
0
Fork 0
mirror of https://github.com/shlomif/PySolFC.git synced 2025-04-15 02:54:09 -04:00

Added Block Ten game.

This commit is contained in:
Joe R 2021-10-10 21:00:29 -04:00
parent 2de479320b
commit 2b8cb6464a
3 changed files with 69 additions and 26 deletions

View file

@ -0,0 +1,18 @@
<h1>Block Ten</h1>
<p>
Pairing game type. 1 deck. No redeal.
<h3>Object</h3>
<p>
Discard cards except the four tens.
<h3>Rules</h3>
<p>
Nine cards are dealt into the tableau. Pairs of cards that
total ten can be removed. Face cards can be removed in pairs.
Tens cannot be removed, so they block that spot in the tableau
for the rest of the game.
<h3>Notes</h3>
<p>
<i>Autodrop</i> is disabled for this game.

View file

@ -311,16 +311,16 @@ class GI:
# Gnome AisleRiot 2.2.0 (we have 65 out of 70 games) # Gnome AisleRiot 2.2.0 (we have 65 out of 70 games)
# Gnome AisleRiot 3.22.7 # Gnome AisleRiot 3.22.7
# still missing: # still missing:
# Block Ten, Hamilton, Isabel, King's Audience, Labyrinth, # Hamilton, Isabel, King's Audience, Labyrinth, Napoleon's Tomb,
# Napoleon's Tomb, Saratoga, Thieves, Treize, Valentine, # Saratoga, Thieves, Treize, Valentine, Wall
# Wall
("Gnome AisleRiot", ( ("Gnome AisleRiot", (
1, 2, 8, 9, 11, 12, 13, 19, 24, 27, 29, 31, 33, 34, 35, 36, 1, 2, 8, 9, 11, 12, 13, 19, 24, 27, 29, 31, 33, 34, 35, 36,
38, 40, 41, 42, 43, 45, 48, 58, 59, 60, 65, 67, 89, 91, 92, 38, 40, 41, 42, 43, 45, 48, 58, 59, 60, 65, 67, 89, 91, 92,
93, 94, 95, 96, 97, 100, 104, 105, 111, 112, 113, 130, 135, 93, 94, 95, 96, 97, 100, 104, 105, 111, 112, 113, 130, 135,
139, 144, 146, 147, 148, 200, 201, 206, 224, 225, 229, 230, 139, 144, 146, 147, 148, 200, 201, 206, 224, 225, 229, 230,
233, 257, 258, 280, 281, 282, 283, 284, 334, 384, 495, 551, 233, 257, 258, 280, 281, 282, 283, 284, 334, 384, 495, 551,
552, 553, 572, 593, 674, 700, 737, 772, 810, 819, 824, 22231, 552, 553, 572, 593, 674, 700, 737, 772, 810, 819, 824, 829,
22231,
)), )),
# KDE Patience 0.7.3 from KDE 1.1.2 (we have 6 out of 9 games) # KDE Patience 0.7.3 from KDE 1.1.2 (we have 6 out of 9 games)
@ -340,26 +340,25 @@ class GI:
# still missing: # still missing:
# Ace of Hearts, Affinity, Agnes Three, Antares, Archway, # Ace of Hearts, Affinity, Agnes Three, Antares, Archway,
# Avenue, Baker's Fan, Baker's Spider, Bedeviled, Binding, # Avenue, Baker's Fan, Baker's Spider, Bedeviled, Binding,
# Black Holes, Black Spider, Block Ten, California, # Black Holes, Black Spider, California, Carcassone,
# Carcassone, Cascade, Club, Color Cell, Cornelius, # Cascade, Club, Color Cell, Cornelius, Demons and Thieves,
# Demons and Thieves, Desert Fox, Deuces and Queens, # Desert Fox, Deuces and Queens, Double Antares,
# Double Antares, Double Antarctica, Double Arctica, # Double Antarctica, Double Arctica, Double Baker's Spider,
# Double Baker's Spider, Double Cascade, Double Fourteens, # Double Cascade, Double Fourteens, Double Line 8,
# Double Line 8, Double Majesty, Double Sea Towers, # Double Majesty, Double Sea Towers, Double Spidercells,
# Double Spidercells, Doublet Cell 5, Doubt, Dream Fan, # Doublet Cell 5, Doubt, Dream Fan, Dumfries Cell,
# Dumfries Cell, Falcon Wing, Fan Nine, Fanny 6, # Falcon Wing, Fan Nine, Fanny 6, Four By Ten, FreeCell AK,
# Four By Ten, FreeCell AK, Gaps Alter, Gaps Diff, # Gaps Alter, Gaps Diff, George V, Grandmother's Clock,
# George V, Grandmother's Clock, In a Frame, Inverted FreeCell, # In a Frame, Inverted FreeCell, Kings, Klondike FreeCell,
# Kings, Klondike FreeCell, La Cabane, La Double Entente, # La Cabane, La Double Entente, Little Gazette, Magic FreeCell,
# Little Gazette, Magic FreeCell, Mini Gaps, Montreal, # Mini Gaps, Montreal, Napoleon at Iena, Napoleon at Waterloo,
# Napoleon at Iena, Napoleon at Waterloo, Napoleon's Guards, # Napoleon's Guards, Nationale, Oasis, Opera, Ordered Suits,
# Nationale, Oasis, Opera, Ordered Suits, Osmotic FreeCell, # Osmotic FreeCell, Pair FreeCell, Pairs 2, Petal, Rainbow Fan,
# Pair FreeCell, Pairs 2, Petal, Rainbow Fan, Reserved Thirteens, # Reserved Thirteens, Sea Spider, Sept Piles 0, Short Solitaire,
# Sea Spider, Sept Piles 0, Short Solitaire, Simple Alternations, # Simple Alternations, Simple Spark, Step By Step, Strategy 7,
# Simple Spark, Step By Step, Strategy 7, Stripped FreeCell, # Stripped FreeCell, Tarantula, Triple Dispute, Trusty Twenty,
# Tarantula, Triple Dispute, Trusty Twenty, Two Ways 3, # Two Ways 3, Up Or Down, Versailles, Vertical FreeCell,
# Up Or Down, Versailles, Vertical FreeCell, Wasp Baby, # Wasp Baby, Yukon FreeCell
# Yukon FreeCell
("XM Solitaire", ( ("XM Solitaire", (
2, 8, 9, 13, 15, 18, 19, 20, 29, 30, 31, 34, 36, 38, 41, 42, 2, 8, 9, 13, 15, 18, 19, 20, 29, 30, 31, 34, 36, 38, 41, 42,
45, 46, 50, 53, 54, 56, 57, 59, 64, 77, 78, 86, 96, 97, 98, 45, 46, 50, 53, 54, 56, 57, 59, 64, 77, 78, 86, 96, 97, 98,
@ -369,7 +368,7 @@ class GI:
363, 364, 372, 376, 383, 384, 385, 386, 390, 391, 393, 398, 363, 364, 372, 376, 383, 384, 385, 386, 390, 391, 393, 398,
405, 415, 416, 425, 451, 453, 461, 464, 466, 467, 476, 480, 405, 415, 416, 425, 451, 453, 461, 464, 466, 467, 476, 480,
484, 511, 512, 516, 561, 610, 625, 629, 631, 638, 641, 647, 484, 511, 512, 516, 561, 610, 625, 629, 631, 638, 641, 647,
650, 655, 678, 734, 751, 784, 825, 901, 650, 655, 678, 734, 751, 784, 825, 829, 901,
)), )),
# xpat2 1.06 (we have 14 out of 16 games) # xpat2 1.06 (we have 14 out of 16 games)
@ -480,7 +479,7 @@ class GI:
('fc-2.12', tuple(range(774, 811)) + (16681,) + ('fc-2.12', tuple(range(774, 811)) + (16681,) +
tuple(range(22217, 22219))), tuple(range(22217, 22219))),
('fc-2.14', tuple(range(811, 827))), ('fc-2.14', tuple(range(811, 827))),
('fc-2.16', tuple(range(827, 829))) ('fc-2.16', tuple(range(827, 830)))
) )
# deprecated - the correct way is to or a GI.GT_XXX flag # deprecated - the correct way is to or a GI.GT_XXX flag

View file

@ -336,6 +336,30 @@ class SimplePairs(MonteCarlo):
return 0 <= stack1.id <= 15 and 0 <= stack2.id <= 15 return 0 <= stack1.id <= 15 and 0 <= stack2.id <= 15
# ************************************************************************
# * Block Ten
# ************************************************************************
class BlockTen_RowStack(MonteCarlo_RowStack):
def acceptsCards(self, from_stack, cards):
if not OpenStack.acceptsCards(self, from_stack, cards):
return False
# check the rank
if self.cards[-1].rank + cards[0].rank + 2 == 10:
return True
if self.cards[-1].rank > 9 and self.cards[-1].rank == cards[0].rank:
return True
return False
class BlockTen(SimplePairs):
RowStack_Class = BlockTen_RowStack
def isGameWon(self):
return len(self.s.foundations[0].cards) == 48
# ************************************************************************ # ************************************************************************
# * Neighbour # * Neighbour
# ************************************************************************ # ************************************************************************
@ -981,3 +1005,5 @@ registerGame(GameInfo(801, DoubleNestor, "Double Nestor",
GI.SL_MOSTLY_LUCK)) GI.SL_MOSTLY_LUCK))
registerGame(GameInfo(810, Quatorze, "Quatorze", registerGame(GameInfo(810, Quatorze, "Quatorze",
GI.GT_PAIRING_TYPE, 1, 0, GI.SL_MOSTLY_LUCK)) GI.GT_PAIRING_TYPE, 1, 0, GI.SL_MOSTLY_LUCK))
registerGame(GameInfo(829, BlockTen, "Block Ten",
GI.GT_PAIRING_TYPE, 1, 0, GI.SL_LUCK))