1
0
Fork 0
mirror of https://github.com/shlomif/PySolFC.git synced 2025-04-05 00:02:29 -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
html-src/rules
pysollib

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 3.22.7
# still missing:
# Block Ten, Hamilton, Isabel, King's Audience, Labyrinth,
# Napoleon's Tomb, Saratoga, Thieves, Treize, Valentine,
# Wall
# Hamilton, Isabel, King's Audience, Labyrinth, Napoleon's Tomb,
# Saratoga, Thieves, Treize, Valentine, Wall
("Gnome AisleRiot", (
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,
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,
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)
@ -340,26 +340,25 @@ class GI:
# still missing:
# Ace of Hearts, Affinity, Agnes Three, Antares, Archway,
# Avenue, Baker's Fan, Baker's Spider, Bedeviled, Binding,
# Black Holes, Black Spider, Block Ten, California,
# Carcassone, Cascade, Club, Color Cell, Cornelius,
# Demons and Thieves, Desert Fox, Deuces and Queens,
# Double Antares, Double Antarctica, Double Arctica,
# Double Baker's Spider, Double Cascade, Double Fourteens,
# Double Line 8, Double Majesty, Double Sea Towers,
# Double Spidercells, Doublet Cell 5, Doubt, Dream Fan,
# Dumfries Cell, Falcon Wing, Fan Nine, Fanny 6,
# Four By Ten, FreeCell AK, Gaps Alter, Gaps Diff,
# George V, Grandmother's Clock, In a Frame, Inverted FreeCell,
# Kings, Klondike FreeCell, La Cabane, La Double Entente,
# Little Gazette, Magic FreeCell, Mini Gaps, Montreal,
# Napoleon at Iena, Napoleon at Waterloo, Napoleon's Guards,
# Nationale, Oasis, Opera, Ordered Suits, Osmotic FreeCell,
# Pair FreeCell, Pairs 2, Petal, Rainbow Fan, Reserved Thirteens,
# Sea Spider, Sept Piles 0, Short Solitaire, Simple Alternations,
# Simple Spark, Step By Step, Strategy 7, Stripped FreeCell,
# Tarantula, Triple Dispute, Trusty Twenty, Two Ways 3,
# Up Or Down, Versailles, Vertical FreeCell, Wasp Baby,
# Yukon FreeCell
# Black Holes, Black Spider, California, Carcassone,
# Cascade, Club, Color Cell, Cornelius, Demons and Thieves,
# Desert Fox, Deuces and Queens, Double Antares,
# Double Antarctica, Double Arctica, Double Baker's Spider,
# Double Cascade, Double Fourteens, Double Line 8,
# Double Majesty, Double Sea Towers, Double Spidercells,
# Doublet Cell 5, Doubt, Dream Fan, Dumfries Cell,
# Falcon Wing, Fan Nine, Fanny 6, Four By Ten, FreeCell AK,
# Gaps Alter, Gaps Diff, George V, Grandmother's Clock,
# In a Frame, Inverted FreeCell, Kings, Klondike FreeCell,
# La Cabane, La Double Entente, Little Gazette, Magic FreeCell,
# Mini Gaps, Montreal, Napoleon at Iena, Napoleon at Waterloo,
# Napoleon's Guards, Nationale, Oasis, Opera, Ordered Suits,
# Osmotic FreeCell, Pair FreeCell, Pairs 2, Petal, Rainbow Fan,
# Reserved Thirteens, Sea Spider, Sept Piles 0, Short Solitaire,
# Simple Alternations, Simple Spark, Step By Step, Strategy 7,
# Stripped FreeCell, Tarantula, Triple Dispute, Trusty Twenty,
# Two Ways 3, Up Or Down, Versailles, Vertical FreeCell,
# Wasp Baby, Yukon FreeCell
("XM Solitaire", (
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,
@ -369,7 +368,7 @@ class GI:
363, 364, 372, 376, 383, 384, 385, 386, 390, 391, 393, 398,
405, 415, 416, 425, 451, 453, 461, 464, 466, 467, 476, 480,
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)
@ -480,7 +479,7 @@ class GI:
('fc-2.12', tuple(range(774, 811)) + (16681,) +
tuple(range(22217, 22219))),
('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

View file

@ -336,6 +336,30 @@ class SimplePairs(MonteCarlo):
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
# ************************************************************************
@ -981,3 +1005,5 @@ registerGame(GameInfo(801, DoubleNestor, "Double Nestor",
GI.SL_MOSTLY_LUCK))
registerGame(GameInfo(810, Quatorze, "Quatorze",
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))