Skip to content

Commit

Permalink
Add Four Kingdoms game
Browse files Browse the repository at this point in the history
  • Loading branch information
joeraz committed Sep 8, 2024
1 parent 792fbca commit bd2edf2
Show file tree
Hide file tree
Showing 10 changed files with 314 additions and 13 deletions.
51 changes: 51 additions & 0 deletions html-src/rules/fourkingdoms.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
<h1>Four Kingdoms</h1>
<p>
One-Deck game type. 1 deck. No redeal.

<h3>Object</h3>
<p>
Move all cards to the different foundations.

<h3>Rules</h3>
<p>
Cards are dealt to seven piles of four cards each, with only the top
card of each pile face-up. These are the free lands, and may be built
up by same suit. Any valid sequence can be moved, and any card or
sequence can be played in an empty space.
<p>
Above the free lands are multiple columns of foundations/reserves,
which accept different cards according depending on which other
piles have been played to. There is one row of these piles for each
suit. From left to right, these are:
<ul>
<li>Dungeon - Aces represent dragons - no card can be played on an ace,
as such, an ace will essentially block its pile until it can be "banished"
to a dungeon. The ace can only be moved to the dungeon if the king, queen,
jack, and ten of the same suit are played in the tower/castle for that suit,
appropriately.
<li>Tower - Tens represent wizards - the ten of each suit can be played
to the appropriate tower at any time.
<li>Guest Chamber - The guest chamber acts as a free cell for each suit. Any
single card other than the ace of that suit can be temporarily played to the
guest chamber, until it can be moved to a space in the free lands or another
foundation later. It can only be used if the king and queen of the same suit
are played to the castle.
<li>Castle - The castle is a series of three foundations for each suit,
and the king, queen, and jack can be played to them, in that order.
<li>Subjects - The remaining cards are played to the subjects foundation,
built down by same suit from nine through two. Cards can only be moved to
the subjects foundation once the king, queen, and jack of the same suit
have all been played to the castle.
</ul>
<p>
Cards can be dealt from the talon one at a time, and moved to an
appropriate pile in the free lands, or any of the aforementioned
foundation/reserve piles. No redeal is allowed.
<p>
The game is won if all cards can be moved to their appropriate foundations,
thus uniting the four kingdoms.

<h3>Notes</h3>
<p>
Four Kingdoms was invented by David Bernazzani. It was designed to try and
reclaim some of the original historical feel for the cards.
17 changes: 16 additions & 1 deletion po/de_pysol.po
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ msgstr ""
"Project-Id-Version: PySol 0.0.1\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-12-10 10:19-0500\n"
"PO-Revision-Date: 2024-08-04 20:21-0400\n"
"PO-Revision-Date: 2024-09-08 09:52-0400\n"
"Last-Translator: H. Schaekel <[email protected]>\n"
"Language-Team: German\n"
"Language: de\n"
Expand Down Expand Up @@ -2347,6 +2347,21 @@ msgstr ""
"7: A 8 2 9 3 T 4 J 5 Q 6 K\n"
"8: 3 J 6 A 9 4 Q 7 2 T 5 K"

msgid "Dungeon"
msgstr ""

msgid "Tower"
msgstr ""

msgid "Guest"
msgstr ""

msgid "Castle"
msgstr ""

msgid "Subjects"
msgstr ""

#: pysollib/games/curdsandwhey.py:76
msgid "Tableau. Build down by suit or of the same rank."
msgstr "Tableau. Erstellt nach unten nach Farbe oder denselben Rang."
Expand Down
17 changes: 16 additions & 1 deletion po/fr_pysol.po
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: 1.02\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-12-10 10:19-0500\n"
"PO-Revision-Date: 2024-08-04 20:20-0400\n"
"PO-Revision-Date: 2024-09-08 09:52-0400\n"
"Last-Translator: Eric Rausch <[email protected]>\n"
"Language-Team: French\n"
"Language: fr\n"
Expand Down Expand Up @@ -2387,6 +2387,21 @@ msgstr ""
"7: A 8 2 9 3 T 4 J 5 Q 6 K\n"
"8: 3 J 6 A 9 4 Q 7 2 T 5 K"

msgid "Dungeon"
msgstr ""

msgid "Tower"
msgstr ""

msgid "Guest"
msgstr ""

msgid "Castle"
msgstr ""

msgid "Subjects"
msgstr ""

#: pysollib/games/curdsandwhey.py:76
msgid "Tableau. Build down by suit or of the same rank."
msgstr "Tableau. Décroissant par enseigne ou de même valeur."
Expand Down
17 changes: 16 additions & 1 deletion po/it_pysol.po
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ msgstr ""
"Project-Id-Version: it_pysol\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-12-10 10:19-0500\n"
"PO-Revision-Date: 2024-08-04 20:19-0400\n"
"PO-Revision-Date: 2024-09-08 09:54-0400\n"
"Last-Translator: Giuliano Colla <[email protected]>\n"
"Language-Team: Italiano <[email protected]>\n"
"Language: it\n"
Expand Down Expand Up @@ -2395,6 +2395,21 @@ msgstr ""
"7: A 8 2 9 3 T 4 J 5 Q 6 K\n"
"8: 3 J 6 A 9 4 Q 7 2 T 5 K"

msgid "Dungeon"
msgstr ""

msgid "Tower"
msgstr ""

msgid "Guest"
msgstr ""

msgid "Castle"
msgstr ""

msgid "Subjects"
msgstr ""

#: pysollib/games/curdsandwhey.py:76
msgid "Tableau. Build down by suit or of the same rank."
msgstr "Tableau: Sequenza decrescente dello stesso seme"
Expand Down
17 changes: 16 additions & 1 deletion po/pl_pysol.po
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: PySolFC\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-12-10 10:19-0500\n"
"PO-Revision-Date: 2024-08-04 20:19-0400\n"
"PO-Revision-Date: 2024-09-08 09:53-0400\n"
"Last-Translator: Jerzy Trzeciak <[email protected]>\n"
"Language-Team: Polish <[email protected]>\n"
"Language: pl\n"
Expand Down Expand Up @@ -2401,6 +2401,21 @@ msgstr ""
"7: A 8 2 9 3 T 4 J 5 Q 6 K\n"
"8: 3 J 6 A 9 4 Q 7 2 T 5 K"

msgid "Dungeon"
msgstr ""

msgid "Tower"
msgstr ""

msgid "Guest"
msgstr ""

msgid "Castle"
msgstr ""

msgid "Subjects"
msgstr ""

#: pysollib/games/curdsandwhey.py:76
msgid "Tableau. Build down by suit or of the same rank."
msgstr "Stół gry. Układaj w dół wg koloru lub wg tej samej wartości."
Expand Down
17 changes: 16 additions & 1 deletion po/pt_BR_pysol.po
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-12-10 10:19-0500\n"
"PO-Revision-Date: 2024-08-04 20:18-0400\n"
"PO-Revision-Date: 2024-09-08 09:53-0400\n"
"Last-Translator: Matheus Knack <[email protected]>\n"
"Language-Team: \n"
"Language: pt_BR\n"
Expand Down Expand Up @@ -2408,6 +2408,21 @@ msgstr ""
"7: A 8 2 9 3 T 4 J 5 Q 6 K\n"
"8: 3 J 6 A 9 4 Q 7 2 T 5 K"

msgid "Dungeon"
msgstr ""

msgid "Tower"
msgstr ""

msgid "Guest"
msgstr ""

msgid "Castle"
msgstr ""

msgid "Subjects"
msgstr ""

#: pysollib/games/curdsandwhey.py:76
msgid "Tableau. Build down by suit or of the same rank."
msgstr "Tableau. Construa decrescente por naipe or por valor igual."
Expand Down
15 changes: 15 additions & 0 deletions po/pysol.pot
Original file line number Diff line number Diff line change
Expand Up @@ -2234,6 +2234,21 @@ msgid "\n"
"8: 3 J 6 A 9 4 Q 7 2 T 5 K"
msgstr ""

msgid "Dungeon"
msgstr ""

msgid "Tower"
msgstr ""

msgid "Guest"
msgstr ""

msgid "Castle"
msgstr ""

msgid "Subjects"
msgstr ""

#: pysollib/games/curdsandwhey.py:76
msgid "Tableau. Build down by suit or of the same rank."
msgstr ""
Expand Down
17 changes: 16 additions & 1 deletion po/ru_pysol.po
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-12-10 10:19-0500\n"
"PO-Revision-Date: 2024-08-04 20:17-0400\n"
"PO-Revision-Date: 2024-09-08 09:54-0400\n"
"Last-Translator: Skomoroh <[email protected]>\n"
"Language-Team: Russian <[email protected]>\n"
"Language: ru\n"
Expand Down Expand Up @@ -2393,6 +2393,21 @@ msgstr ""
"7: A 8 2 9 3 10 4 В 5 Д 6 K\n"
"8: 3 В 6 A 9 4 Д 7 2 10 5 K"

msgid "Dungeon"
msgstr ""

msgid "Tower"
msgstr ""

msgid "Guest"
msgstr ""

msgid "Castle"
msgstr ""

msgid "Subjects"
msgstr ""

#: pysollib/games/curdsandwhey.py:76
msgid "Tableau. Build down by suit or of the same rank."
msgstr ""
Expand Down
8 changes: 4 additions & 4 deletions pysollib/gamedb.py
Original file line number Diff line number Diff line change
Expand Up @@ -418,15 +418,15 @@ def _callback(gi, gt=game_type):

# Solitude for Windows
# still missing:
# Bowling (Sackson version), Four Kingdoms, Icicles
# Bowling (Sackson version), Icicles
("Solitude for Windows", (
2, 8, 11, 13, 19, 24, 25, 29, 30, 31, 33, 34, 36, 38, 42,
43, 45, 48, 50, 53, 56, 57, 58, 62, 64, 67, 69, 71, 86, 87,
88, 89, 95, 96, 97, 98, 100, 104, 105, 107, 109, 112, 125,
128, 133, 134, 135, 139, 146, 147, 171, 172, 173, 221, 222,
224, 228, 233, 234, 235, 256, 257, 258, 282, 314, 327, 330,
355, 356, 398, 406, 414, 418, 434, 437, 484, 593, 715, 716,
737, 751, 805, 830, 845, 847, 888, 901, 903
737, 751, 805, 830, 845, 847, 888, 901, 903, 970
)),

# XM Solitaire
Expand Down Expand Up @@ -479,7 +479,7 @@ def _callback(gi, gt=game_type):
("Paul Alfille", (8,)),
("C.L. Baker", (45,)),
("Mark S. Ball", (909,)),
("David Bernazzani", (314, 830,)),
("David Bernazzani", (314, 830, 970,)),
("Gordon Bower", (763, 783, 852, 959,)),
("Art Cabral", (9,)),
("Richard A. Canfield", (105, 835,)),
Expand Down Expand Up @@ -603,7 +603,7 @@ def _callback(gi, gt=game_type):
tuple(range(13168, 13170)) + tuple(range(18000, 18005)) +
tuple(range(19000, 19012)) + tuple(range(22303, 22311)) +
tuple(range(22353, 22361))),
('dev', tuple(range(961, 970))),
('dev', tuple(range(961, 971))),
)

# deprecated - the correct way is to or a GI.GT_XXX flag
Expand Down
Loading

0 comments on commit bd2edf2

Please sign in to comment.