Added Ishido game.
|
@ -43,6 +43,7 @@ Cardsets Types:
|
||||||
* Trumps Only = 9
|
* Trumps Only = 9
|
||||||
* Matching = 10
|
* Matching = 10
|
||||||
* Puzzle = 11
|
* Puzzle = 11
|
||||||
|
* Ishido = 12
|
||||||
|
|
||||||
*$C:* The number of cards in the cardset, generally 42, 48, 52, 68, 78, 96 or 120
|
*$C:* The number of cards in the cardset, generally 42, 48, 52, 68, 78, 96 or 120
|
||||||
|
|
||||||
|
@ -66,6 +67,7 @@ Cardsets Styles:
|
||||||
* Hanafuda = 12
|
* Hanafuda = 12
|
||||||
* Hex A Deck = 29
|
* Hex A Deck = 29
|
||||||
* Holiday = 13
|
* Holiday = 13
|
||||||
|
* Ishido = 34
|
||||||
* Mahjongg = 28
|
* Mahjongg = 28
|
||||||
* Matching = 32
|
* Matching = 32
|
||||||
* Movies = 14
|
* Movies = 14
|
||||||
|
|
BIN
data/images/cards/bottoms/ishido/bottom02-n.png
Normal file
After Width: | Height: | Size: 129 B |
BIN
data/images/cards/bottoms/ishido/bottom02.png
Normal file
After Width: | Height: | Size: 129 B |
BIN
data/images/cards/finder/ishido/01a.gif
Normal file
After Width: | Height: | Size: 193 B |
BIN
data/images/cards/finder/ishido/01a.png
Normal file
After Width: | Height: | Size: 226 B |
BIN
data/images/cards/finder/ishido/01b.gif
Normal file
After Width: | Height: | Size: 193 B |
BIN
data/images/cards/finder/ishido/01b.png
Normal file
After Width: | Height: | Size: 226 B |
BIN
data/images/cards/finder/ishido/01c.gif
Normal file
After Width: | Height: | Size: 193 B |
BIN
data/images/cards/finder/ishido/01c.png
Normal file
After Width: | Height: | Size: 226 B |
BIN
data/images/cards/finder/ishido/01d.gif
Normal file
After Width: | Height: | Size: 193 B |
BIN
data/images/cards/finder/ishido/01d.png
Normal file
After Width: | Height: | Size: 226 B |
BIN
data/images/cards/finder/ishido/01e.gif
Normal file
After Width: | Height: | Size: 193 B |
BIN
data/images/cards/finder/ishido/01e.png
Normal file
After Width: | Height: | Size: 226 B |
BIN
data/images/cards/finder/ishido/01f.gif
Normal file
After Width: | Height: | Size: 193 B |
BIN
data/images/cards/finder/ishido/01f.png
Normal file
After Width: | Height: | Size: 226 B |
BIN
data/images/cards/finder/ishido/02a.gif
Normal file
After Width: | Height: | Size: 210 B |
BIN
data/images/cards/finder/ishido/02a.png
Normal file
After Width: | Height: | Size: 268 B |
BIN
data/images/cards/finder/ishido/02b.gif
Normal file
After Width: | Height: | Size: 210 B |
BIN
data/images/cards/finder/ishido/02b.png
Normal file
After Width: | Height: | Size: 268 B |
BIN
data/images/cards/finder/ishido/02c.gif
Normal file
After Width: | Height: | Size: 210 B |
BIN
data/images/cards/finder/ishido/02c.png
Normal file
After Width: | Height: | Size: 268 B |
BIN
data/images/cards/finder/ishido/02d.gif
Normal file
After Width: | Height: | Size: 210 B |
BIN
data/images/cards/finder/ishido/02d.png
Normal file
After Width: | Height: | Size: 268 B |
BIN
data/images/cards/finder/ishido/02e.gif
Normal file
After Width: | Height: | Size: 210 B |
BIN
data/images/cards/finder/ishido/02e.png
Normal file
After Width: | Height: | Size: 268 B |
BIN
data/images/cards/finder/ishido/02f.gif
Normal file
After Width: | Height: | Size: 210 B |
BIN
data/images/cards/finder/ishido/02f.png
Normal file
After Width: | Height: | Size: 268 B |
BIN
data/images/cards/finder/ishido/03a.gif
Normal file
After Width: | Height: | Size: 215 B |
BIN
data/images/cards/finder/ishido/03a.png
Normal file
After Width: | Height: | Size: 271 B |
BIN
data/images/cards/finder/ishido/03b.gif
Normal file
After Width: | Height: | Size: 215 B |
BIN
data/images/cards/finder/ishido/03b.png
Normal file
After Width: | Height: | Size: 271 B |
BIN
data/images/cards/finder/ishido/03c.gif
Normal file
After Width: | Height: | Size: 215 B |
BIN
data/images/cards/finder/ishido/03c.png
Normal file
After Width: | Height: | Size: 271 B |
BIN
data/images/cards/finder/ishido/03d.gif
Normal file
After Width: | Height: | Size: 215 B |
BIN
data/images/cards/finder/ishido/03d.png
Normal file
After Width: | Height: | Size: 271 B |
BIN
data/images/cards/finder/ishido/03e.gif
Normal file
After Width: | Height: | Size: 215 B |
BIN
data/images/cards/finder/ishido/03e.png
Normal file
After Width: | Height: | Size: 271 B |
BIN
data/images/cards/finder/ishido/03f.gif
Normal file
After Width: | Height: | Size: 215 B |
BIN
data/images/cards/finder/ishido/03f.png
Normal file
After Width: | Height: | Size: 271 B |
BIN
data/images/cards/finder/ishido/04a.gif
Normal file
After Width: | Height: | Size: 213 B |
BIN
data/images/cards/finder/ishido/04a.png
Normal file
After Width: | Height: | Size: 297 B |
BIN
data/images/cards/finder/ishido/04b.gif
Normal file
After Width: | Height: | Size: 213 B |
BIN
data/images/cards/finder/ishido/04b.png
Normal file
After Width: | Height: | Size: 297 B |
BIN
data/images/cards/finder/ishido/04c.gif
Normal file
After Width: | Height: | Size: 213 B |
BIN
data/images/cards/finder/ishido/04c.png
Normal file
After Width: | Height: | Size: 297 B |
BIN
data/images/cards/finder/ishido/04d.gif
Normal file
After Width: | Height: | Size: 213 B |
BIN
data/images/cards/finder/ishido/04d.png
Normal file
After Width: | Height: | Size: 297 B |
BIN
data/images/cards/finder/ishido/04e.gif
Normal file
After Width: | Height: | Size: 213 B |
BIN
data/images/cards/finder/ishido/04e.png
Normal file
After Width: | Height: | Size: 297 B |
BIN
data/images/cards/finder/ishido/04f.gif
Normal file
After Width: | Height: | Size: 213 B |
BIN
data/images/cards/finder/ishido/04f.png
Normal file
After Width: | Height: | Size: 297 B |
BIN
data/images/cards/finder/ishido/05a.gif
Normal file
After Width: | Height: | Size: 214 B |
BIN
data/images/cards/finder/ishido/05a.png
Normal file
After Width: | Height: | Size: 283 B |
BIN
data/images/cards/finder/ishido/05b.gif
Normal file
After Width: | Height: | Size: 214 B |
BIN
data/images/cards/finder/ishido/05b.png
Normal file
After Width: | Height: | Size: 283 B |
BIN
data/images/cards/finder/ishido/05c.gif
Normal file
After Width: | Height: | Size: 214 B |
BIN
data/images/cards/finder/ishido/05c.png
Normal file
After Width: | Height: | Size: 283 B |
BIN
data/images/cards/finder/ishido/05d.gif
Normal file
After Width: | Height: | Size: 214 B |
BIN
data/images/cards/finder/ishido/05d.png
Normal file
After Width: | Height: | Size: 283 B |
BIN
data/images/cards/finder/ishido/05e.gif
Normal file
After Width: | Height: | Size: 214 B |
BIN
data/images/cards/finder/ishido/05e.png
Normal file
After Width: | Height: | Size: 283 B |
BIN
data/images/cards/finder/ishido/05f.gif
Normal file
After Width: | Height: | Size: 214 B |
BIN
data/images/cards/finder/ishido/05f.png
Normal file
After Width: | Height: | Size: 283 B |
BIN
data/images/cards/finder/ishido/06a.gif
Normal file
After Width: | Height: | Size: 220 B |
BIN
data/images/cards/finder/ishido/06a.png
Normal file
After Width: | Height: | Size: 301 B |
BIN
data/images/cards/finder/ishido/06b.gif
Normal file
After Width: | Height: | Size: 220 B |
BIN
data/images/cards/finder/ishido/06b.png
Normal file
After Width: | Height: | Size: 301 B |
BIN
data/images/cards/finder/ishido/06c.gif
Normal file
After Width: | Height: | Size: 220 B |
BIN
data/images/cards/finder/ishido/06c.png
Normal file
After Width: | Height: | Size: 301 B |
BIN
data/images/cards/finder/ishido/06d.gif
Normal file
After Width: | Height: | Size: 220 B |
BIN
data/images/cards/finder/ishido/06d.png
Normal file
After Width: | Height: | Size: 301 B |
BIN
data/images/cards/finder/ishido/06e.gif
Normal file
After Width: | Height: | Size: 220 B |
BIN
data/images/cards/finder/ishido/06e.png
Normal file
After Width: | Height: | Size: 301 B |
BIN
data/images/cards/finder/ishido/06f.gif
Normal file
After Width: | Height: | Size: 220 B |
BIN
data/images/cards/finder/ishido/06f.png
Normal file
After Width: | Height: | Size: 301 B |
|
@ -50,6 +50,9 @@ back01.ext;back02.ext;back03.ext</pre>
|
||||||
<li>
|
<li>
|
||||||
<p>Puzzle = 11</p>
|
<p>Puzzle = 11</p>
|
||||||
</li>
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>Ishido = 12</p>
|
||||||
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
<p><b>$C:</b> The number of cards in the cardset, generally 42,
|
<p><b>$C:</b> The number of cards in the cardset, generally 42,
|
||||||
48, 52, 68, 78, 96 or 120</p>
|
48, 52, 68, 78, 96 or 120</p>
|
||||||
|
@ -102,6 +105,9 @@ back01.ext;back02.ext;back03.ext</pre>
|
||||||
<li>
|
<li>
|
||||||
<p>Holiday = 13</p>
|
<p>Holiday = 13</p>
|
||||||
</li>
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>Ishido = 34</p>
|
||||||
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<p>Mahjongg = 28</p>
|
<p>Mahjongg = 28</p>
|
||||||
</li>
|
</li>
|
||||||
|
|
|
@ -178,6 +178,14 @@ function similar to JOKERS (see <a href="hexadeck.html">Hex A Deck</a>
|
||||||
for more info).</p>
|
for more info).</p>
|
||||||
</dd>
|
</dd>
|
||||||
|
|
||||||
|
<dt><b>ISHIDO DECK</b></dt>
|
||||||
|
|
||||||
|
<dd>
|
||||||
|
<p>An Ishido set consists of 36 tiles, containing six different colors
|
||||||
|
and six symbols. Ishido games usually involve matching the colors and
|
||||||
|
symbols of adjacent tiles.</p>
|
||||||
|
</dd>
|
||||||
|
|
||||||
<dt><b>JOKER</b></dt>
|
<dt><b>JOKER</b></dt>
|
||||||
|
|
||||||
<dd>
|
<dd>
|
||||||
|
|
12
html-src/rules/freeishido.html
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
<h1>Free Ishido</h1>
|
||||||
|
<p>
|
||||||
|
Ishido game type. 2 decks. No redeal.
|
||||||
|
|
||||||
|
<h3>Object</h3>
|
||||||
|
<p>
|
||||||
|
Move all tiles to the playing area.
|
||||||
|
|
||||||
|
<h3>Quick Description</h3>
|
||||||
|
<p>
|
||||||
|
Like <a href='ishido.html'>Ishido</a>, but tiles do not need to be
|
||||||
|
placed adjacent to other tiles.
|
14
html-src/rules/freeishidorelaxed.html
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
<h1>Free Ishido Relaxed</h1>
|
||||||
|
<p>
|
||||||
|
Ishido game type. 2 decks. No redeal.
|
||||||
|
|
||||||
|
<h3>Object</h3>
|
||||||
|
<p>
|
||||||
|
Move all tiles to the playing area.
|
||||||
|
|
||||||
|
<h3>Quick Description</h3>
|
||||||
|
<p>
|
||||||
|
Like <a href='ishido.html'>Ishido</a>, but tiles do not need to be
|
||||||
|
placed adjacent to other tiles, and there are no restrictions
|
||||||
|
when placing a tile next to two or more other tiles - they just have
|
||||||
|
to match the color or symbol of each.
|
29
html-src/rules/ishido.html
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
<h1>Ishido</h1>
|
||||||
|
<p>
|
||||||
|
Ishido game type. 2 decks. No redeal.
|
||||||
|
|
||||||
|
<h3>Object</h3>
|
||||||
|
<p>
|
||||||
|
Move all tiles to the playing area.
|
||||||
|
|
||||||
|
<h3>Rules</h3>
|
||||||
|
<p>
|
||||||
|
The tiles are played to an grid of eight rows of twelve columns each.
|
||||||
|
At the start of the game, a tile is placed in each corner, and two are
|
||||||
|
placed in two diagonally adjacent spaces in the center.
|
||||||
|
<p>
|
||||||
|
Tiles are drawn from the talon one at a time, and can be played to the
|
||||||
|
main playing area. A tile can only be played if it is adjacent to
|
||||||
|
another tile, either horizontally or vertically, and if it matches the
|
||||||
|
adjacent tile's color or symbol. If a tile is placed next to at least
|
||||||
|
two other tiles, one must match by color and another by symbol. If it
|
||||||
|
is played next to four other tiles, it must match two by color and two
|
||||||
|
by symbol.
|
||||||
|
<p>
|
||||||
|
The game is played if all tiles from the talon can be played to the
|
||||||
|
playing area.
|
||||||
|
|
||||||
|
<h3>History</h3>
|
||||||
|
<p>
|
||||||
|
Ishido was originally published as a video game "Ishido: The Way of Stones"
|
||||||
|
in 1990. It has since been recreated many times.
|
13
html-src/rules/ishidorelaxed.html
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
<h1>Ishido Relaxed</h1>
|
||||||
|
<p>
|
||||||
|
Ishido game type. 2 decks. No redeal.
|
||||||
|
|
||||||
|
<h3>Object</h3>
|
||||||
|
<p>
|
||||||
|
Move all tiles to the playing area.
|
||||||
|
|
||||||
|
<h3>Quick Description</h3>
|
||||||
|
<p>
|
||||||
|
Like <a href='ishido.html'>Ishido</a>, but there are no restrictions
|
||||||
|
when placing a tile next to two or more other tiles - they just have
|
||||||
|
to match the color or symbol of each.
|
|
@ -3,7 +3,7 @@ msgstr ""
|
||||||
"Project-Id-Version: PySol 0.0.1\n"
|
"Project-Id-Version: PySol 0.0.1\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2021-12-10 10:19-0500\n"
|
"POT-Creation-Date: 2021-12-10 10:19-0500\n"
|
||||||
"PO-Revision-Date: 2023-09-27 20:03-0400\n"
|
"PO-Revision-Date: 2023-11-05 12:49-0500\n"
|
||||||
"Last-Translator: H. Schaekel <Holger.Schaekel@web.de>\n"
|
"Last-Translator: H. Schaekel <Holger.Schaekel@web.de>\n"
|
||||||
"Language-Team: German\n"
|
"Language-Team: German\n"
|
||||||
"Language: de\n"
|
"Language: de\n"
|
||||||
|
@ -453,6 +453,9 @@ msgstr "4 Deck Spiele"
|
||||||
msgid "Cribbage"
|
msgid "Cribbage"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Ishido"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Lights Out"
|
msgid "Lights Out"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -615,6 +618,9 @@ msgstr ""
|
||||||
msgid "Tower of Hanoi type"
|
msgid "Tower of Hanoi type"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Ishido type"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: pysollib/help.py:43
|
#: pysollib/help.py:43
|
||||||
msgid "A Python Solitaire Game Collection"
|
msgid "A Python Solitaire Game Collection"
|
||||||
msgstr "Eine Python Spielesammlung"
|
msgstr "Eine Python Spielesammlung"
|
||||||
|
@ -886,6 +892,9 @@ msgstr ""
|
||||||
msgid "Puzzle type (variable pieces)"
|
msgid "Puzzle type (variable pieces)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Ishido type (36 tiles)"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: pysollib/resource.py:194
|
#: pysollib/resource.py:194
|
||||||
msgid "French"
|
msgid "French"
|
||||||
msgstr "Französisch"
|
msgstr "Französisch"
|
||||||
|
|
|
@ -8,7 +8,7 @@ msgstr ""
|
||||||
"Project-Id-Version: 1.02\n"
|
"Project-Id-Version: 1.02\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2021-12-10 10:19-0500\n"
|
"POT-Creation-Date: 2021-12-10 10:19-0500\n"
|
||||||
"PO-Revision-Date: 2023-09-27 20:02-0400\n"
|
"PO-Revision-Date: 2023-11-05 12:49-0500\n"
|
||||||
"Last-Translator: Eric Rausch <neelix570@gmail.com>\n"
|
"Last-Translator: Eric Rausch <neelix570@gmail.com>\n"
|
||||||
"Language-Team: French\n"
|
"Language-Team: French\n"
|
||||||
"Language: fr\n"
|
"Language: fr\n"
|
||||||
|
@ -459,6 +459,9 @@ msgstr "Jeux à 4 jeux de cartes"
|
||||||
msgid "Cribbage"
|
msgid "Cribbage"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Ishido"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Lights Out"
|
msgid "Lights Out"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -621,6 +624,9 @@ msgstr ""
|
||||||
msgid "Tower of Hanoi type"
|
msgid "Tower of Hanoi type"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Ishido type"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: pysollib/help.py:43
|
#: pysollib/help.py:43
|
||||||
msgid "A Python Solitaire Game Collection"
|
msgid "A Python Solitaire Game Collection"
|
||||||
msgstr "Une collection de jeux de solitaire en Python"
|
msgstr "Une collection de jeux de solitaire en Python"
|
||||||
|
@ -916,6 +922,9 @@ msgstr ""
|
||||||
msgid "Puzzle type (variable pieces)"
|
msgid "Puzzle type (variable pieces)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Ishido type (36 tiles)"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: pysollib/resource.py:194
|
#: pysollib/resource.py:194
|
||||||
msgid "French"
|
msgid "French"
|
||||||
msgstr "Français"
|
msgstr "Français"
|
||||||
|
|
|
@ -12,7 +12,7 @@ msgstr ""
|
||||||
"Project-Id-Version: it_pysol\n"
|
"Project-Id-Version: it_pysol\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2021-12-10 10:19-0500\n"
|
"POT-Creation-Date: 2021-12-10 10:19-0500\n"
|
||||||
"PO-Revision-Date: 2023-09-27 20:02-0400\n"
|
"PO-Revision-Date: 2023-11-05 12:49-0500\n"
|
||||||
"Last-Translator: Giuliano Colla <giuliano.colla@gmail.com>\n"
|
"Last-Translator: Giuliano Colla <giuliano.colla@gmail.com>\n"
|
||||||
"Language-Team: Italiano <it@li.org>\n"
|
"Language-Team: Italiano <it@li.org>\n"
|
||||||
"Language: it\n"
|
"Language: it\n"
|
||||||
|
@ -465,6 +465,9 @@ msgstr "Giochi con quattro mazzi"
|
||||||
msgid "Cribbage"
|
msgid "Cribbage"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Ishido"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Lights Out"
|
msgid "Lights Out"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -627,6 +630,9 @@ msgstr ""
|
||||||
msgid "Tower of Hanoi type"
|
msgid "Tower of Hanoi type"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Ishido type"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: pysollib/help.py:43
|
#: pysollib/help.py:43
|
||||||
msgid "A Python Solitaire Game Collection"
|
msgid "A Python Solitaire Game Collection"
|
||||||
msgstr "Una raccolta di solitari in Python"
|
msgstr "Una raccolta di solitari in Python"
|
||||||
|
@ -924,6 +930,9 @@ msgstr ""
|
||||||
msgid "Puzzle type (variable pieces)"
|
msgid "Puzzle type (variable pieces)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Ishido type (36 tiles)"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: pysollib/resource.py:194
|
#: pysollib/resource.py:194
|
||||||
msgid "French"
|
msgid "French"
|
||||||
msgstr "Francesi"
|
msgstr "Francesi"
|
||||||
|
|
|
@ -8,7 +8,7 @@ msgstr ""
|
||||||
"Project-Id-Version: PySolFC\n"
|
"Project-Id-Version: PySolFC\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2021-12-10 10:19-0500\n"
|
"POT-Creation-Date: 2021-12-10 10:19-0500\n"
|
||||||
"PO-Revision-Date: 2023-09-27 20:01-0400\n"
|
"PO-Revision-Date: 2023-11-05 12:49-0500\n"
|
||||||
"Last-Translator: Jerzy Trzeciak <artusek@wp.pl>\n"
|
"Last-Translator: Jerzy Trzeciak <artusek@wp.pl>\n"
|
||||||
"Language-Team: Polish <pl@li.org>\n"
|
"Language-Team: Polish <pl@li.org>\n"
|
||||||
"Language: pl\n"
|
"Language: pl\n"
|
||||||
|
@ -459,6 +459,9 @@ msgstr "Gry czterotaliowe"
|
||||||
msgid "Cribbage"
|
msgid "Cribbage"
|
||||||
msgstr "Szopka"
|
msgstr "Szopka"
|
||||||
|
|
||||||
|
msgid "Ishido"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Lights Out"
|
msgid "Lights Out"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -619,6 +622,9 @@ msgstr "Gry typu Samotnik"
|
||||||
msgid "Tower of Hanoi type"
|
msgid "Tower of Hanoi type"
|
||||||
msgstr "Gra typu Wieża Hanoi"
|
msgstr "Gra typu Wieża Hanoi"
|
||||||
|
|
||||||
|
msgid "Ishido type"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: pysollib/help.py:43
|
#: pysollib/help.py:43
|
||||||
msgid "A Python Solitaire Game Collection"
|
msgid "A Python Solitaire Game Collection"
|
||||||
msgstr "Kolekcja gier Python Solitaire"
|
msgstr "Kolekcja gier Python Solitaire"
|
||||||
|
@ -921,6 +927,9 @@ msgstr ""
|
||||||
msgid "Puzzle type (variable pieces)"
|
msgid "Puzzle type (variable pieces)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Ishido type (36 tiles)"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: pysollib/resource.py:194
|
#: pysollib/resource.py:194
|
||||||
msgid "French"
|
msgid "French"
|
||||||
msgstr "Francuski"
|
msgstr "Francuski"
|
||||||
|
|
|
@ -8,7 +8,7 @@ msgstr ""
|
||||||
"Project-Id-Version: \n"
|
"Project-Id-Version: \n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2021-12-10 10:19-0500\n"
|
"POT-Creation-Date: 2021-12-10 10:19-0500\n"
|
||||||
"PO-Revision-Date: 2023-09-27 20:02-0400\n"
|
"PO-Revision-Date: 2023-11-05 12:50-0500\n"
|
||||||
"Last-Translator: Matheus Knack <mtknack555@gmail.com>\n"
|
"Last-Translator: Matheus Knack <mtknack555@gmail.com>\n"
|
||||||
"Language-Team: \n"
|
"Language-Team: \n"
|
||||||
"Language: pt_BR\n"
|
"Language: pt_BR\n"
|
||||||
|
@ -458,6 +458,9 @@ msgstr "Jogos de quatro baralhos"
|
||||||
msgid "Cribbage"
|
msgid "Cribbage"
|
||||||
msgstr "Cribbage"
|
msgstr "Cribbage"
|
||||||
|
|
||||||
|
msgid "Ishido"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Lights Out"
|
msgid "Lights Out"
|
||||||
msgstr "Sem luz"
|
msgstr "Sem luz"
|
||||||
|
|
||||||
|
@ -618,6 +621,9 @@ msgstr "estilo Resta um"
|
||||||
msgid "Tower of Hanoi type"
|
msgid "Tower of Hanoi type"
|
||||||
msgstr "estilo Torre de Lucas"
|
msgstr "estilo Torre de Lucas"
|
||||||
|
|
||||||
|
msgid "Ishido type"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: pysollib/help.py:43
|
#: pysollib/help.py:43
|
||||||
msgid "A Python Solitaire Game Collection"
|
msgid "A Python Solitaire Game Collection"
|
||||||
msgstr "Coleção de Jogos de Paciência Python"
|
msgstr "Coleção de Jogos de Paciência Python"
|
||||||
|
@ -915,6 +921,9 @@ msgstr "Estilos Combinados (cartas variáveis)"
|
||||||
msgid "Puzzle type (variable pieces)"
|
msgid "Puzzle type (variable pieces)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Ishido type (36 tiles)"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: pysollib/resource.py:194
|
#: pysollib/resource.py:194
|
||||||
msgid "French"
|
msgid "French"
|
||||||
msgstr "Francês"
|
msgstr "Francês"
|
||||||
|
|
|
@ -433,6 +433,9 @@ msgstr ""
|
||||||
msgid "Cribbage"
|
msgid "Cribbage"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Ishido"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Lights Out"
|
msgid "Lights Out"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -593,6 +596,9 @@ msgstr ""
|
||||||
msgid "Tower of Hanoi type"
|
msgid "Tower of Hanoi type"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Ishido type"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: pysollib/help.py:43
|
#: pysollib/help.py:43
|
||||||
msgid "A Python Solitaire Game Collection"
|
msgid "A Python Solitaire Game Collection"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -832,6 +838,9 @@ msgstr ""
|
||||||
msgid "Puzzle type (variable pieces)"
|
msgid "Puzzle type (variable pieces)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Ishido type (36 tiles)"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: pysollib/resource.py:194
|
#: pysollib/resource.py:194
|
||||||
msgid "French"
|
msgid "French"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
|
@ -7,7 +7,7 @@ msgstr ""
|
||||||
"Project-Id-Version: \n"
|
"Project-Id-Version: \n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2021-12-10 10:19-0500\n"
|
"POT-Creation-Date: 2021-12-10 10:19-0500\n"
|
||||||
"PO-Revision-Date: 2023-09-27 20:02-0400\n"
|
"PO-Revision-Date: 2023-11-05 12:50-0500\n"
|
||||||
"Last-Translator: Skomoroh <skomoroh@gmail.com>\n"
|
"Last-Translator: Skomoroh <skomoroh@gmail.com>\n"
|
||||||
"Language-Team: Russian <ru@li.org>\n"
|
"Language-Team: Russian <ru@li.org>\n"
|
||||||
"Language: ru\n"
|
"Language: ru\n"
|
||||||
|
@ -462,6 +462,9 @@ msgstr "Игры с четырьмя колодами"
|
||||||
msgid "Cribbage"
|
msgid "Cribbage"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Ishido"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Lights Out"
|
msgid "Lights Out"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -624,6 +627,9 @@ msgstr ""
|
||||||
msgid "Tower of Hanoi type"
|
msgid "Tower of Hanoi type"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Ishido type"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: pysollib/help.py:43
|
#: pysollib/help.py:43
|
||||||
msgid "A Python Solitaire Game Collection"
|
msgid "A Python Solitaire Game Collection"
|
||||||
msgstr "Коллекция питоновских пасьянсов"
|
msgstr "Коллекция питоновских пасьянсов"
|
||||||
|
@ -911,6 +917,9 @@ msgstr ""
|
||||||
msgid "Puzzle type (variable pieces)"
|
msgid "Puzzle type (variable pieces)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Ishido type (36 tiles)"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: pysollib/resource.py:194
|
#: pysollib/resource.py:194
|
||||||
msgid "French"
|
msgid "French"
|
||||||
msgstr "Классические"
|
msgstr "Классические"
|
||||||
|
|
|
@ -824,6 +824,10 @@ class Application:
|
||||||
t0 = "Puzzle"
|
t0 = "Puzzle"
|
||||||
if cs_type not in (CSI.TYPE_PUZZLE,) or cs_subtype != gs:
|
if cs_type not in (CSI.TYPE_PUZZLE,) or cs_subtype != gs:
|
||||||
t1 = t0
|
t1 = t0
|
||||||
|
elif gc == GI.GC_ISHIDO:
|
||||||
|
t0 = "Ishido"
|
||||||
|
if cs_type not in (CSI.TYPE_ISHIDO,):
|
||||||
|
t1 = t0
|
||||||
else:
|
else:
|
||||||
# we should not come here
|
# we should not come here
|
||||||
t0 = t1 = "Unknown"
|
t0 = t1 = "Unknown"
|
||||||
|
|
|
@ -57,8 +57,9 @@ class GI:
|
||||||
GC_TRUMP_ONLY = CSI.TYPE_TRUMP_ONLY
|
GC_TRUMP_ONLY = CSI.TYPE_TRUMP_ONLY
|
||||||
GC_MATCHING = CSI.TYPE_MATCHING
|
GC_MATCHING = CSI.TYPE_MATCHING
|
||||||
GC_PUZZLE = CSI.TYPE_PUZZLE
|
GC_PUZZLE = CSI.TYPE_PUZZLE
|
||||||
|
GC_ISHIDO = CSI.TYPE_ISHIDO
|
||||||
|
|
||||||
NUM_CATEGORIES = CSI.TYPE_PUZZLE
|
NUM_CATEGORIES = CSI.TYPE_ISHIDO
|
||||||
|
|
||||||
# game subcategory
|
# game subcategory
|
||||||
GS_NONE = CSI.SUBTYPE_NONE
|
GS_NONE = CSI.SUBTYPE_NONE
|
||||||
|
@ -90,6 +91,7 @@ class GI:
|
||||||
GT_HANAFUDA = 13
|
GT_HANAFUDA = 13
|
||||||
GT_HANOI = 35
|
GT_HANOI = 35
|
||||||
GT_HEXADECK = 14
|
GT_HEXADECK = 14
|
||||||
|
GT_ISHIDO = 39
|
||||||
GT_KLONDIKE = 15
|
GT_KLONDIKE = 15
|
||||||
GT_LIGHTS_OUT = 38
|
GT_LIGHTS_OUT = 38
|
||||||
GT_MAHJONGG = 16
|
GT_MAHJONGG = 16
|
||||||
|
@ -166,6 +168,7 @@ class GI:
|
||||||
|
|
||||||
GT_CRIBBAGE_TYPE: n_("Cribbage"),
|
GT_CRIBBAGE_TYPE: n_("Cribbage"),
|
||||||
GT_HEXADECK: n_("Hex A Deck"),
|
GT_HEXADECK: n_("Hex A Deck"),
|
||||||
|
GT_ISHIDO: n_("Ishido"),
|
||||||
GT_LIGHTS_OUT: n_("Lights Out"),
|
GT_LIGHTS_OUT: n_("Lights Out"),
|
||||||
GT_MATRIX: n_("Matrix"),
|
GT_MATRIX: n_("Matrix"),
|
||||||
GT_MEMORY: n_("Memory"),
|
GT_MEMORY: n_("Memory"),
|
||||||
|
@ -283,6 +286,7 @@ class GI:
|
||||||
lambda gi, gt=GT_CRIBBAGE_TYPE: gi.si.game_type == gt),
|
lambda gi, gt=GT_CRIBBAGE_TYPE: gi.si.game_type == gt),
|
||||||
(n_("Hex A Deck type"),
|
(n_("Hex A Deck type"),
|
||||||
lambda gi, gt=GT_HEXADECK: gi.si.game_type == gt),
|
lambda gi, gt=GT_HEXADECK: gi.si.game_type == gt),
|
||||||
|
(n_("Ishido type"), lambda gi, gt=GT_ISHIDO: gi.si.game_type == gt),
|
||||||
(n_("Lights Out type"),
|
(n_("Lights Out type"),
|
||||||
lambda gi, gt=GT_LIGHTS_OUT: gi.si.game_type == gt),
|
lambda gi, gt=GT_LIGHTS_OUT: gi.si.game_type == gt),
|
||||||
(n_("Matrix type"), lambda gi, gt=GT_MATRIX: gi.si.game_type == gt),
|
(n_("Matrix type"), lambda gi, gt=GT_MATRIX: gi.si.game_type == gt),
|
||||||
|
@ -577,7 +581,8 @@ class GI:
|
||||||
('fc-2.21', tuple(range(897, 900)) + tuple(range(11014, 11017)) +
|
('fc-2.21', tuple(range(897, 900)) + tuple(range(11014, 11017)) +
|
||||||
tuple(range(13160, 13163)) + (16682,)),
|
tuple(range(13160, 13163)) + (16682,)),
|
||||||
('dev', tuple(range(906, 927)) + tuple(range(11017, 11020)) +
|
('dev', tuple(range(906, 927)) + tuple(range(11017, 11020)) +
|
||||||
tuple(range(22303, 22311)) + tuple(range(22353, 22361))),
|
tuple(range(18000, 18004)) + tuple(range(22303, 22311)) +
|
||||||
|
tuple(range(22353, 22361))),
|
||||||
)
|
)
|
||||||
|
|
||||||
# deprecated - the correct way is to or a GI.GT_XXX flag
|
# deprecated - the correct way is to or a GI.GT_XXX flag
|
||||||
|
|
|
@ -22,6 +22,7 @@
|
||||||
# ---------------------------------------------------------------------------##
|
# ---------------------------------------------------------------------------##
|
||||||
from . import cribbage # noqa: F401
|
from . import cribbage # noqa: F401
|
||||||
from . import hanoi # noqa: F401
|
from . import hanoi # noqa: F401
|
||||||
|
from . import ishido # noqa: F401
|
||||||
from . import lightsout # noqa: F401
|
from . import lightsout # noqa: F401
|
||||||
from . import memory # noqa: F401
|
from . import memory # noqa: F401
|
||||||
from . import pegged # noqa: F401
|
from . import pegged # noqa: F401
|
||||||
|
|
185
pysollib/games/special/ishido.py
Normal file
|
@ -0,0 +1,185 @@
|
||||||
|
#!/usr/bin/env python
|
||||||
|
# -*- mode: python; coding: utf-8; -*-
|
||||||
|
# ---------------------------------------------------------------------------
|
||||||
|
#
|
||||||
|
# Copyright (C) 1998-2003 Markus Franz Xaver Johannes Oberhumer
|
||||||
|
# Copyright (C) 2003 Mt. Hood Playing Card Co.
|
||||||
|
# Copyright (C) 2005-2009 Skomoroh
|
||||||
|
#
|
||||||
|
# This program is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation, either version 3 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
# ---------------------------------------------------------------------------
|
||||||
|
|
||||||
|
from pysollib.game import Game
|
||||||
|
from pysollib.gamedb import GI, GameInfo, registerGame
|
||||||
|
from pysollib.layout import Layout
|
||||||
|
from pysollib.stack import \
|
||||||
|
OpenTalonStack, \
|
||||||
|
ReserveStack, \
|
||||||
|
StackWrapper
|
||||||
|
|
||||||
|
# ************************************************************************
|
||||||
|
# * Ishido
|
||||||
|
# ************************************************************************
|
||||||
|
|
||||||
|
|
||||||
|
class Ishido_RowStack(ReserveStack):
|
||||||
|
def clickHandler(self, event):
|
||||||
|
if (not self.cards and self.game.s.talon.cards and
|
||||||
|
self.game.isValidPlay(self.id,
|
||||||
|
self.game.s.talon.getCard().rank,
|
||||||
|
self.game.s.talon.getCard().suit)):
|
||||||
|
self.game.s.talon.playMoveMove(1, self)
|
||||||
|
return 1
|
||||||
|
return ReserveStack.clickHandler(self, event)
|
||||||
|
|
||||||
|
rightclickHandler = clickHandler
|
||||||
|
|
||||||
|
def acceptsCards(self, from_stack, cards):
|
||||||
|
return not self.cards and self.game.isValidPlay(self.id,
|
||||||
|
cards[0].rank,
|
||||||
|
cards[0].suit)
|
||||||
|
|
||||||
|
def canFlipCard(self):
|
||||||
|
return False
|
||||||
|
|
||||||
|
|
||||||
|
class Ishido(Game):
|
||||||
|
Talon_Class = OpenTalonStack
|
||||||
|
RowStack_Class = StackWrapper(Ishido_RowStack, max_move=0)
|
||||||
|
Hint_Class = None
|
||||||
|
|
||||||
|
REQUIRE_ADJACENT = True
|
||||||
|
STRICT_FOUR_WAYS = True
|
||||||
|
|
||||||
|
#
|
||||||
|
# game layout
|
||||||
|
#
|
||||||
|
|
||||||
|
def createGame(self):
|
||||||
|
# create layout
|
||||||
|
l, s = Layout(self), self.s
|
||||||
|
|
||||||
|
ta = "ss"
|
||||||
|
x, y = l.XM, l.YM + 2 * l.YS
|
||||||
|
|
||||||
|
w2 = max(2 * l.XS, x)
|
||||||
|
# set window
|
||||||
|
w, h = w2 + l.XM * 2 + l.CW * 12, l.YM * 2 + l.CH * 8
|
||||||
|
self.setSize(w, h)
|
||||||
|
|
||||||
|
# Create rows
|
||||||
|
for j in range(8):
|
||||||
|
x, y = w2 + l.XM, l.YM + l.CH * j
|
||||||
|
for i in range(12):
|
||||||
|
s.rows.append(self.RowStack_Class(x, y, self))
|
||||||
|
x = x + l.CW
|
||||||
|
|
||||||
|
s.talon = self.Talon_Class(l.XM, l.YM, self)
|
||||||
|
l.createText(s.talon, anchor=ta)
|
||||||
|
|
||||||
|
# define stack-groups
|
||||||
|
l.defaultStackGroups()
|
||||||
|
return l
|
||||||
|
|
||||||
|
def startGame(self):
|
||||||
|
self.moveMove(1, self.s.talon, self.s.rows[0], frames=0)
|
||||||
|
self.s.rows[0].flipMove()
|
||||||
|
self.moveMove(1, self.s.talon, self.s.rows[11], frames=0)
|
||||||
|
self.s.rows[11].flipMove()
|
||||||
|
self.moveMove(1, self.s.talon, self.s.rows[41], frames=0)
|
||||||
|
self.s.rows[41].flipMove()
|
||||||
|
self.moveMove(1, self.s.talon, self.s.rows[54], frames=0)
|
||||||
|
self.s.rows[54].flipMove()
|
||||||
|
self.moveMove(1, self.s.talon, self.s.rows[84], frames=0)
|
||||||
|
self.s.rows[84].flipMove()
|
||||||
|
self.moveMove(1, self.s.talon, self.s.rows[95], frames=0)
|
||||||
|
self.s.rows[95].flipMove()
|
||||||
|
self.s.talon.fillStack()
|
||||||
|
|
||||||
|
def isGameWon(self):
|
||||||
|
return len(self.s.talon.cards) == 0
|
||||||
|
|
||||||
|
def isValidPlay(self, playSpace, playRank, playSuit):
|
||||||
|
# check that there's an adjacent card
|
||||||
|
adjacent = self.getAdjacent(playSpace)
|
||||||
|
rankMatches = 0
|
||||||
|
suitMatches = 0
|
||||||
|
totalMatches = 0
|
||||||
|
for i in adjacent:
|
||||||
|
if len(i.cards) > 0:
|
||||||
|
totalMatches += 1
|
||||||
|
if i.cards[-1].rank == playRank:
|
||||||
|
rankMatches += 1
|
||||||
|
if i.cards[-1].suit == playSuit:
|
||||||
|
suitMatches += 1
|
||||||
|
|
||||||
|
if i.cards[-1].suit != playSuit and \
|
||||||
|
i.cards[-1].rank != playRank:
|
||||||
|
return False
|
||||||
|
|
||||||
|
if self.REQUIRE_ADJACENT and totalMatches == 0:
|
||||||
|
return False
|
||||||
|
|
||||||
|
if self.STRICT_FOUR_WAYS:
|
||||||
|
if totalMatches > 1 and (rankMatches == 0 or suitMatches == 0):
|
||||||
|
return False
|
||||||
|
if totalMatches == 4 and (rankMatches < 2 or suitMatches < 2):
|
||||||
|
return False
|
||||||
|
|
||||||
|
return True
|
||||||
|
|
||||||
|
def getAdjacent(self, playSpace):
|
||||||
|
adjacentRows = []
|
||||||
|
if playSpace % 12 != 11:
|
||||||
|
adjacentRows.append(self.s.rows[playSpace + 1])
|
||||||
|
|
||||||
|
if playSpace % 12 != 0:
|
||||||
|
adjacentRows.append(self.s.rows[playSpace - 1])
|
||||||
|
|
||||||
|
if playSpace + 12 < 96:
|
||||||
|
adjacentRows.append(self.s.rows[playSpace + 12])
|
||||||
|
|
||||||
|
if playSpace - 12 > -1:
|
||||||
|
adjacentRows.append(self.s.rows[playSpace - 12])
|
||||||
|
|
||||||
|
return adjacentRows
|
||||||
|
|
||||||
|
|
||||||
|
class IshidoRelaxed(Ishido):
|
||||||
|
STRICT_FOUR_WAYS = False
|
||||||
|
|
||||||
|
|
||||||
|
class FreeIshido(Ishido):
|
||||||
|
REQUIRE_ADJACENT = False
|
||||||
|
|
||||||
|
|
||||||
|
class FreeIshidoRelaxed(Ishido):
|
||||||
|
STRICT_FOUR_WAYS = False
|
||||||
|
REQUIRE_ADJACENT = False
|
||||||
|
|
||||||
|
|
||||||
|
def r(id, gameclass, name, decks, redeals, skill_level):
|
||||||
|
game_type = GI.GT_ISHIDO
|
||||||
|
gi = GameInfo(id, gameclass, name, game_type, decks, redeals, skill_level,
|
||||||
|
ranks=list(range(6)), suits=list(range(6)),
|
||||||
|
category=GI.GC_ISHIDO)
|
||||||
|
registerGame(gi)
|
||||||
|
return gi
|
||||||
|
|
||||||
|
|
||||||
|
r(18000, Ishido, 'Ishido', 2, 0, GI.SL_MOSTLY_SKILL)
|
||||||
|
r(18001, IshidoRelaxed, 'Ishido Relaxed', 2, 0, GI.SL_MOSTLY_SKILL)
|
||||||
|
r(18002, FreeIshido, 'Free Ishido', 2, 0, GI.SL_MOSTLY_SKILL)
|
||||||
|
r(18003, FreeIshidoRelaxed, 'Free Ishido Relaxed', 2, 0, GI.SL_MOSTLY_SKILL)
|
|
@ -210,6 +210,7 @@ highlight_piles = float(0.2, 9.9)
|
||||||
11_8 = string_list(min=2, max=2)
|
11_8 = string_list(min=2, max=2)
|
||||||
11_9 = string_list(min=2, max=2)
|
11_9 = string_list(min=2, max=2)
|
||||||
11_10 = string_list(min=2, max=2)
|
11_10 = string_list(min=2, max=2)
|
||||||
|
12 = string_list(min=2, max=2)
|
||||||
scale_cards = boolean
|
scale_cards = boolean
|
||||||
scale_x = float
|
scale_x = float
|
||||||
scale_y = float
|
scale_y = float
|
||||||
|
@ -577,6 +578,7 @@ class Options:
|
||||||
8: ("Mid Winter's Eve (8x8)", ""),
|
8: ("Mid Winter's Eve (8x8)", ""),
|
||||||
9: ("Hofamterspiel (9x9)", ""),
|
9: ("Hofamterspiel (9x9)", ""),
|
||||||
10: ("Eternal Dragon (10x10)", "")},
|
10: ("Eternal Dragon (10x10)", "")},
|
||||||
|
CSI.TYPE_ISHIDO: {0: ("Simple Ishido XL", "")},
|
||||||
}
|
}
|
||||||
else:
|
else:
|
||||||
self.cardset = {
|
self.cardset = {
|
||||||
|
@ -601,6 +603,7 @@ class Options:
|
||||||
8: ("Mid Winter's Eve (8x8)", ""),
|
8: ("Mid Winter's Eve (8x8)", ""),
|
||||||
9: ("Hofamterspiel (9x9)", ""),
|
9: ("Hofamterspiel (9x9)", ""),
|
||||||
10: ("Eternal Dragon (10x10)", "")},
|
10: ("Eternal Dragon (10x10)", "")},
|
||||||
|
CSI.TYPE_ISHIDO: {0: ("Simple Ishido", "")},
|
||||||
}
|
}
|
||||||
|
|
||||||
# not changeable options
|
# not changeable options
|
||||||
|
|
|
@ -182,6 +182,7 @@ class CSI:
|
||||||
TYPE_TRUMP_ONLY = 9
|
TYPE_TRUMP_ONLY = 9
|
||||||
TYPE_MATCHING = 10
|
TYPE_MATCHING = 10
|
||||||
TYPE_PUZZLE = 11
|
TYPE_PUZZLE = 11
|
||||||
|
TYPE_ISHIDO = 12
|
||||||
|
|
||||||
# cardset subtypes
|
# cardset subtypes
|
||||||
SUBTYPE_NONE = 0
|
SUBTYPE_NONE = 0
|
||||||
|
@ -206,7 +207,8 @@ class CSI:
|
||||||
8: _("Dashavatara Ganjifa type (120 cards)"),
|
8: _("Dashavatara Ganjifa type (120 cards)"),
|
||||||
9: _("Trumps only type (variable cards)"),
|
9: _("Trumps only type (variable cards)"),
|
||||||
10: _("Matching type (variable cards)"),
|
10: _("Matching type (variable cards)"),
|
||||||
11: _("Puzzle type (variable pieces)")
|
11: _("Puzzle type (variable pieces)"),
|
||||||
|
12: _("Ishido type (36 tiles)")
|
||||||
}
|
}
|
||||||
|
|
||||||
TYPE_NAME = {
|
TYPE_NAME = {
|
||||||
|
@ -220,7 +222,8 @@ class CSI:
|
||||||
8: _("Dashavatara Ganjifa"),
|
8: _("Dashavatara Ganjifa"),
|
||||||
9: _("Trumps only"),
|
9: _("Trumps only"),
|
||||||
10: _("Matching"),
|
10: _("Matching"),
|
||||||
11: _("Puzzle")
|
11: _("Puzzle"),
|
||||||
|
12: _("Ishido")
|
||||||
}
|
}
|
||||||
|
|
||||||
SUBTYPE_NAME = {
|
SUBTYPE_NAME = {
|
||||||
|
@ -246,7 +249,8 @@ class CSI:
|
||||||
8: "dashavatara-ganjifa",
|
8: "dashavatara-ganjifa",
|
||||||
9: "trumps-only",
|
9: "trumps-only",
|
||||||
10: "matching",
|
10: "matching",
|
||||||
11: "puzzle"
|
11: "puzzle",
|
||||||
|
12: "ishido"
|
||||||
}
|
}
|
||||||
|
|
||||||
TYPE_SUITS = {
|
TYPE_SUITS = {
|
||||||
|
@ -260,7 +264,8 @@ class CSI:
|
||||||
8: "abcdefghij",
|
8: "abcdefghij",
|
||||||
9: "",
|
9: "",
|
||||||
10: "",
|
10: "",
|
||||||
11: ""
|
11: "",
|
||||||
|
12: "abcdef"
|
||||||
}
|
}
|
||||||
|
|
||||||
TYPE_RANKS = {
|
TYPE_RANKS = {
|
||||||
|
@ -275,6 +280,7 @@ class CSI:
|
||||||
9: list(range(0)),
|
9: list(range(0)),
|
||||||
10: list(range(0)),
|
10: list(range(0)),
|
||||||
11: list(range(0)),
|
11: list(range(0)),
|
||||||
|
12: list(range(6))
|
||||||
}
|
}
|
||||||
|
|
||||||
TYPE_TRUMPS = {
|
TYPE_TRUMPS = {
|
||||||
|
@ -289,6 +295,7 @@ class CSI:
|
||||||
9: (),
|
9: (),
|
||||||
10: (),
|
10: (),
|
||||||
11: (),
|
11: (),
|
||||||
|
12: ()
|
||||||
}
|
}
|
||||||
|
|
||||||
# cardset styles
|
# cardset styles
|
||||||
|
@ -308,6 +315,7 @@ class CSI:
|
||||||
12: _("Hanafuda"), #
|
12: _("Hanafuda"), #
|
||||||
29: _("Hex A Deck"), #
|
29: _("Hex A Deck"), #
|
||||||
13: _("Holiday"), #
|
13: _("Holiday"), #
|
||||||
|
34: _("Ishido"), #
|
||||||
28: _("Mahjongg"), #
|
28: _("Mahjongg"), #
|
||||||
32: _("Matching"), #
|
32: _("Matching"), #
|
||||||
14: _("Movies"), #
|
14: _("Movies"), #
|
||||||
|
@ -548,7 +556,10 @@ class CardsetManager(ResourceManager):
|
||||||
cs.nletters = 0
|
cs.nletters = 0
|
||||||
cs.nshadows = 0
|
cs.nshadows = 0
|
||||||
cs.trumps = list(range(cs.ncards))
|
cs.trumps = list(range(cs.ncards))
|
||||||
|
elif s == CSI.TYPE_ISHIDO:
|
||||||
|
cs.nbottoms = 0
|
||||||
|
cs.nletters = 0
|
||||||
|
cs.nshadows = 0
|
||||||
else:
|
else:
|
||||||
return 0
|
return 0
|
||||||
return 1
|
return 1
|
||||||
|
|
|
@ -27,7 +27,8 @@ cardset_type = {
|
||||||
'8': 'Dashavatara Ganjifa',
|
'8': 'Dashavatara Ganjifa',
|
||||||
'9': 'Trump only',
|
'9': 'Trump only',
|
||||||
'10': 'Matching',
|
'10': 'Matching',
|
||||||
'11': 'Puzzle'
|
'11': 'Puzzle',
|
||||||
|
'12': 'Ishido'
|
||||||
}
|
}
|
||||||
|
|
||||||
ALL_IMGS = False
|
ALL_IMGS = False
|
||||||
|
|