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

Compare commits

...

361 commits

Author SHA1 Message Date
Joe R
bdd3093a2b Compress tile images 2025-03-30 15:42:45 -04:00
Joe R
c4a62baf79 Add Cribbage Patience II game 2025-03-30 14:04:18 -04:00
Joe R
b1370fce08 Add more alternate names 2025-03-25 19:09:39 -04:00
Joe R
7b85049f7c Add Flamboyant game 2025-03-25 17:42:31 -04:00
Joe R
afc74a86f5 Remove extra paragraph tags to improve documentation formatting 2025-03-23 19:41:21 -04:00
Joe R
50e003e256 Add Ace of Penguins to the compatibility list 2025-03-17 19:44:23 -04:00
Joe R
78de569074 Fix for the total text crashing Ninety-One on Android (#436) 2025-03-17 18:04:38 -04:00
Joe R
a79c81109b Fix binding error in Kivy 2025-03-15 20:11:50 -04:00
Joe R
c14be7b73e Add Wizard's Castle game 2025-03-14 22:09:56 -04:00
Joe R
69c1440b2b Improve display details of cardset info window 2025-03-14 19:21:14 -04:00
Joe R
72386af5e6 Configure highlight matching for more games 2025-03-10 22:02:24 -04:00
Joe R
a57f1eae38 Add Noumea game 2025-03-10 19:47:40 -04:00
Shlomi Fish
6f0c6e00e1
Condition "chdir" in script dir being local. (#434)
So "python3 scripts/linux-install.py" as documented in README will work.
2025-03-09 19:44:55 -04:00
Joe R
512d3ea466 Improve new Mahjongg layouts 2025-03-06 23:13:43 -05:00
Joe R
e7e9f0ff87 Configure topmost dialogs to not stay on top when PySol loses focus 2025-03-06 22:38:13 -05:00
Joe R
9773eee2d6 Add Wizard's Storeroom game 2025-03-03 21:28:35 -05:00
Joe R
015e860557 Fix endgame hints for Crossword 2025-03-03 19:37:54 -05:00
Joe R
04b7eacfcb Fix highlight match logic for Nines/Tens/Elevens 2025-03-01 22:24:17 -05:00
Joe R
52e2ffc58f Add two mahjongg layouts 2025-03-01 16:17:53 -05:00
Joe R
81150b4681 Add Relaxed Cruel game 2025-02-26 19:55:01 -05:00
Joe R
f799093e35 Restore unfinished Thirteen game as Pyramid Thirteen, using correct AisleRiot rules 2025-02-23 22:32:22 -05:00
Joe R
12118d12ed Clean up Scorpion type games 2025-02-23 14:18:08 -05:00
Joe R
fd4a4e1378 Fill in missing translated names 2025-02-20 18:59:01 -05:00
Joe R
63a63fdfd3 Add Louis game 2025-02-20 18:47:21 -05:00
Joe R
ff9cc5e98c Add FAQ to the in-app documentation 2025-02-20 17:26:10 -05:00
Joe R
cadf8b2084 Fix some controls being unselectable by tab 2025-02-18 19:16:04 -05:00
Joe R
f4dec3ed16 Add Ides of March game 2025-02-17 21:24:26 -05:00
Joe R
5c8d5c26b4 Cleanup 2025-02-17 20:49:25 -05:00
Joe R
cb0dd1ec2f Add definition of super move to the glossary 2025-02-13 21:09:17 -05:00
Joe R
dc5ab96c80 Add Families game 2025-02-13 20:55:16 -05:00
Joe R
54a978b4e2 Fix flake8 2025-02-11 21:56:10 -05:00
Joe R
5b9f64a7eb Support alternate names for alternate deck games 2025-02-11 21:39:43 -05:00
Joe R
21c2780e8e Tweak menu text for consistency 2025-02-06 21:56:32 -05:00
Joe R
ed2da8cd46 Restore lost Outback Patience game, with the correct rules 2025-02-06 19:59:16 -05:00
Joe R
054c0f0368 Enable log for demo games 2025-01-28 23:32:15 -05:00
Joe R
487d1c52f3 Use Python 3.13 in AppVeyor 2025-01-28 19:38:23 -05:00
Joe R
6852bb40ff Add Little Ishido game 2025-01-24 21:58:56 -05:00
Joe R
6006e0f4c0 Shift children's games to use tag rather than deprecated list 2025-01-24 20:03:08 -05:00
Joe R
68138c7284 Add Colours game 2025-01-23 18:01:20 -05:00
Joe R
96a06108af Fix flake8 2025-01-20 21:06:13 -05:00
Joe R
ac03fa741d Add Microbe game 2025-01-20 20:18:32 -05:00
Joe R
7cac54b714 Add more alternate names 2025-01-20 19:25:16 -05:00
lufebe16
b189c4b3b0 Android/Kivy:
- Metadata update
2025-01-13 16:56:39 +01:00
Joe R
4566cb2fc5 Update MacOS version 2025-01-11 12:25:32 -05:00
Joe R
40929f913e 3.2 release 2025-01-11 12:17:10 -05:00
Joe R
ef69c03a38 Add section to the cardset customization doc for the required files 2025-01-11 12:08:45 -05:00
Joe R
0cdd06ddad Add the ability to sort the log 2025-01-09 18:58:16 -05:00
Joe R
a6827ee7e2 Update game count in intro documentation 2025-01-06 23:02:26 -05:00
Joe R
5d1ed621e3 Allow resizing of log and comments windows 2025-01-06 18:28:00 -05:00
Joe R
4c031b9686 Fix undumping of random states 2025-01-04 12:55:38 -05:00
Joe R
2c69371265 Update copyright year to 2025 2025-01-04 12:08:06 -05:00
Joe R
7940e62285 Add topmost logic to HTML viewer 2024-12-28 21:20:58 -05:00
Joe R
9cd7a2c5fe Add random game option to Android version 2024-12-28 19:14:57 -05:00
Joe R
5005ef6796 Consolidate raiseAll logic into app.py 2024-12-24 23:23:21 -05:00
Joe R
cafdafe047 Add topmost logic to solver dialog 2024-12-24 22:39:45 -05:00
Joe R
911f83d249 Add option to keep dialogs always on top 2024-12-22 17:21:10 -05:00
Joe R
abb9605dd4 Add hint logic to account for multi-waste pile games (like Display or Rosamund's Bower) 2024-12-21 15:44:37 -05:00
Joe R
180d3d57df Fix mismatched game ID when loading games from the command line 2024-12-11 20:45:39 -05:00
Joe R
5d9b462304 Run typo check on game rules 2024-12-11 17:43:18 -05:00
lufebe16
d18c857a76 Android/Kivy:
- metadata update
2024-12-07 11:59:01 +01:00
Joe R
d5d426fe91 Add documentation for deal all cards option to Accordion type game rules 2024-12-01 17:55:22 -05:00
Joe R
2e6cb6ad35 Sharpen and reduce noise on joker images 2024-12-01 13:56:42 -05:00
lufebe16
c9c315818d Kivy/Android:
- Added new menu option to adjust font size in general.
- Fixed a bug with doubleclick moves addressed in #117.
2024-11-29 10:06:41 +01:00
Joe R
4471a8a623 Fix error with game preview 2024-11-28 10:56:09 -05:00
lufebe16
289df06b95 Kivy/Android:
- zoom: card selection improved (bug fix)
2024-11-27 09:35:39 +01:00
Joe R
f844c0eae2 Fix slow dealing issue 2024-11-26 22:59:18 -05:00
Joe R
a5e0c96450 Fix formatting in a few game rules files 2024-11-26 22:04:31 -05:00
Joe R
d36c19b158 Refresh forms to reduce unresponsiveness 2024-11-26 21:32:43 -05:00
Joe R
61eb1f0361 Fix error saving comments to the comments.txt file 2024-11-24 16:04:21 -05:00
Joe R
86d92c2636 Fix inconsistent capitalization on some menu bar items 2024-11-24 15:22:46 -05:00
Joe R
5392190c35 Unset busy when the demo ends 2024-11-21 20:52:23 -05:00
lufebe16
cb2252b74e Android/Kivy:
- metadata update
2024-11-20 09:32:25 +01:00
Joe R
d7d9bb3ea6 Add option to clear filters 2024-11-16 11:40:32 -05:00
Joe R
8cbac328a9 Trim strings in the select all games submenu 2024-11-14 23:36:50 -05:00
Joe R
b6454ce541 Add basic hint to Crossword for stuck checking 2024-11-14 17:58:17 -05:00
lufebe16
0135e386c2 Android/Kivy:
- Event handling: Pass through for empty stacks.
- Menu entry to reset zoom.
2024-11-12 10:47:35 +01:00
lufebe16
70909f6469 Android/Kivy:
- zoom settings persistence
- event mapping
2024-11-11 11:35:47 +01:00
Joe R
673cb847bc Expose drag cursor option 2024-11-10 18:27:57 -05:00
Joe R
91b1ba9be9 Disallow moving cards from the foundation in Arachnida 2024-11-10 12:20:37 -05:00
lufebe16
2bfc6bdd3d Android/Kivy version
- Zoom: bug fixes and refactoring
2024-11-09 13:50:49 +01:00
Joe R
552585f143 Catch error when a cardset image fails to load 2024-11-08 21:26:23 -05:00
lufebe16
880fb11979 Android version
- Added two finger zoom to main widget.
2024-11-07 09:39:16 +01:00
Joe R
934d82b5f4 Some format cleanup of How to Use help file 2024-11-06 21:52:53 -05:00
Joe R
87a33b72b1 Set full picture and find card dialogs to be always on top 2024-11-06 20:50:15 -05:00
lufebe16
b7569e79c2 Android version
- version info updates
- bug fix
2024-10-31 09:34:34 +01:00
Joe R
ba202f67c1 Move fullscreen logic to wm_map method 2024-10-30 18:49:08 -04:00
Joe R
d0ca03a49a Add fullscreen mode 2024-10-29 23:14:23 -04:00
Joe R
f448248741 Add stack help for Four Kingdoms 2024-10-29 20:16:46 -04:00
Joe R
eb3bb5dad8 Remove restriction on random game selection by category (#254) 2024-10-29 17:53:50 -04:00
Joe R
49e48bada4 Remove config validation warning 2024-10-26 09:26:05 -04:00
Joe R
dcfac1032d Document "Use Mouse for Undo/Redo" feature 2024-10-24 23:47:17 -04:00
Sandeepa Dilshan Alagiyawanna
ad39c3aa22
Added Detailed Comments -simplex.py (#408)
* Added comments -clearthedungeon.py

* Added Comments -simplex.py

* Update simplex.py

* Added Detailed Comments -simplex.py

* Update simplex.py according to tests
2024-10-24 20:29:35 -04:00
Sandeepa Dilshan Alagiyawanna
98c9202e34
Added comments -clearthedungeon.py (#407)
* Added comments -clearthedungeon.py

* Added Comments -simplex.py

* Update simplex.py
2024-10-23 19:34:23 -04:00
Surani Naranpanawa
1fad63af73
Added comments to royaleast.py and sanibel.py (#404)
* Added comments to royaleast.py and sanibel.py

* Update royaleast.py

I have removed unnecessary white spaces and edited the longer lines.

* Update sanibel.py

I have removed the white spaces and edited the longer lines.

* Update royaleast.py

* Update sanibel.py

---------

Co-authored-by: Surani02 <surainaranpanawa@gmail.com>
2024-10-22 18:14:00 -04:00
Alexandre Detiste
f360600fcd
finish removing dependency on six (#403)
* finish removing dependency on six

* fix tkinter.FileDialog

* fix filedialog <> FileDialog
2024-10-22 18:11:32 -04:00
Joe R
b3cdb7e4b8 Fix deprecated GitHub action artifact version 2024-10-19 18:03:27 -04:00
Joe R
dab3eea6cb 3.1 release 2024-10-19 17:08:20 -04:00
Joe R
8c58941d23 Add locale folder to the repo as a workaround for the gettext failures 2024-10-19 15:08:51 -04:00
Joe R
3778ab2c1f Fix mismatched log frames 2024-10-18 18:53:30 -04:00
Joe R
56489cb7bc Add random game command line option 2024-10-17 23:44:44 -04:00
Joe R
910f927727 Fix for command line parameters not checking compatible cardsets 2024-10-17 23:28:28 -04:00
Surani Naranpanawa
cc32c0373e
Added comments to the algerian.py (#401)
* Added comments to the algerian.py

* Update algerian.py

I made changes to the code so that it would pass flake8.

* Update algerian.py

I have revised the comments to comply with Flake8 standards.

* Update algerian.py

I have removed the trailing spaces to ensure AppVeyor passes successfully.

---------

Co-authored-by: Surani02 <surainaranpanawa@gmail.com>
2024-10-17 08:59:54 -04:00
Joe R
b77989cbdb Update redeals for Devil's Grip 2024-10-15 23:31:36 -04:00
Joe R
41c17c74f3 Switch the session log to being the default tab on the log window 2024-10-15 18:47:57 -04:00
Joe R
df8d05e0c5 Correct Hanoi formula for minimum number of moves in the docs (#397) 2024-10-13 14:20:46 -04:00
Joe R
66995aedaf Fix inconsistent numbers in Memory rules (#394) 2024-10-07 19:02:29 -04:00
Joe R
fbc0817a1e Fix grammar of more game rules 2024-10-05 11:08:46 -04:00
Joe R
dfd3b063dd Disable autodrop for Samegame (#386) 2024-10-05 10:01:49 -04:00
Joe R
83289d5432 Fix missing HTML tag 2024-09-26 21:57:14 -04:00
Joe R
4478212d20 Add more alternate names 2024-09-23 20:31:00 -04:00
Alexandre Detiste
dd16750d5f
import tkinter directly (#383)
* import tkinter directly

* linter

* linter
2024-09-21 17:10:10 -04:00
Joe R
68d6b64fa2 Document Python 3.7 as the minimum supported version 2024-09-19 22:30:45 -04:00
Joe R
679c9a74c1 Add missing button icons 2024-09-19 22:20:40 -04:00
Joe R
4a3d6e7383 Delete game statistics when deleting a game 2024-09-19 21:41:56 -04:00
Alexandre Detiste
148f189a74
trim usage of six (#382)
This is artisanal manual craftwork :-)

     def mDone(self, button):
         if button == 0:        # "OK" or double click
-            if isinstance(self.tree.selection_key, six.string_types):
-                self.key = str(self.tree.selection_key)
-            else:
-                self.key = self.tree.selection_key
+            self.key = self.tree.selection_key
2024-09-18 20:33:10 -04:00
Joe R
1149d4fd4f Remove mentions of Python 2.7 2024-09-17 23:00:10 -04:00
Joe R
57adebfcdc Add F5 as a shortcut for refreshing the display, to help with testing 2024-09-17 22:49:01 -04:00
Alexandre Detiste
83baa54164
remove "import imp/import importlib hybridation" (#381) 2024-09-17 22:42:51 -04:00
Alexandre Detiste
d7c145ac18
remove usage of old Random2 backport (#379) 2024-09-15 12:06:34 -04:00
Joe R
b74dcde44a Configure AppVeyor to build 2024-09-11 21:06:48 -04:00
Joe R
bd2edf2f19 Add Four Kingdoms game 2024-09-08 09:55:22 -04:00
Joe R
792fbca78a Add option to replay a specific game/deal from the log 2024-09-06 22:45:08 -04:00
Joe R
a0ea7a3870 Update and correct documentation pages 2024-08-21 20:18:57 -04:00
Joe R
166025313b Update search field verbiage for clarity 2024-08-04 21:19:58 -04:00
Joe R
18f8e3e32b Track size of table tiles and add option to search them by size 2024-08-04 20:23:42 -04:00
Joe R
fd230df4f2 Perform minor cleanup of resource.py 2024-07-28 23:35:19 -04:00
Joe R
d15ff23d49 Fix to support equivalent image file extensions 2024-07-28 12:45:24 -04:00
Joe R
23f41d9553 Clean up images and restore missing images 2024-07-22 19:18:10 -04:00
Joe R
77f1125156 Add Eleven Triangle game 2024-07-19 19:40:42 -04:00
Joe R
b26821048c Prevent moving stacks to the foundation in Ace of Hearts 2024-07-19 18:32:46 -04:00
Joe R
3a356670bb Add possible icons for remaining buttons 2024-07-15 19:04:00 -04:00
Joe R
885b2925ab Fix Astrocyte to use correct hints 2024-07-15 18:03:44 -04:00
Joe R
b92debbbfd Add Xerxes and Zingara games 2024-07-13 18:37:24 -04:00
Joe R
13c611949d Make verbiage consistent on select windows 2024-07-13 17:23:03 -04:00
Joe R
447dc4afea Clean up find card images 2024-07-09 19:11:28 -04:00
Joe R
69394fa3b9 Add Ace of Hearts game 2024-07-05 18:14:17 -04:00
Joe R
180f3fa225 Add more alternate names 2024-07-05 17:32:41 -04:00
Joe R
85d455d4f7 Trim trailing space 2024-07-04 17:41:45 -04:00
Joe R
6a32b1f2fa Add King's Way game 2024-07-04 17:06:19 -04:00
Joe R
ea0ce6f6f3 Fix email display in credits page 2024-06-30 10:47:05 -04:00
Joe R
a42b76d263 Enable button icons (as an enableable option) 2024-06-30 10:01:21 -04:00
Joe R
3cbcc8d214 Add Russian Cell game 2024-06-28 22:45:47 -04:00
Joe R
0cace3a07b Add temp fix for new issue with xgettext command in AppVeyor 2024-06-28 22:04:35 -04:00
Joe R
9274e47de6 Remove duplicate/unused images 2024-06-28 20:17:57 -04:00
Joe R
b3c8390fac Add Sevastopol game 2024-06-23 20:22:59 -04:00
Joe R
b62630ab5f Cleanup of table tiles to remove duplicates and consolidate name references. 2024-06-23 15:46:19 -04:00
Joe R
58e2eb89c9 Set new game finished message to clarify if the demo was used. 2024-06-22 12:20:41 -04:00
Joe R
764fb5207e Added Carousel game. 2024-06-15 11:08:22 -04:00
Joe R
ceee32e212 Game rule documentation fixes. 2024-06-15 08:51:16 -04:00
Joe R
b951d86579 Added Nines game. 2024-06-11 20:01:26 -04:00
Joe R
a189d42328 Fixed incompatibility error with string types on older versions of Python. 2024-06-11 17:48:13 -04:00
Shlomi Fish
abd95b8887
Update the cardsets’ package version to 3.0. (#368)
This is the latest release.
2024-06-09 14:30:37 -04:00
Joe R
90ffaeb2d1 Fixed resetting of cardset on cancelling select game. 2024-06-07 19:11:23 -04:00
Joe R
7ef3b1d359 Added search option for compatible cardsets. 2024-05-31 20:32:20 -04:00
Joe R
b64ef10374 Added basic, but workable, hint logic for Ishido type games. 2024-05-22 20:16:20 -04:00
Joe R
66d2eaba5f Moved cardset change fix to cancel button. 2024-05-16 17:34:03 -04:00
Joe R
efdb843179 Copied over some important names to the FC credits page. Checked for dead links. 2024-05-12 22:38:47 -04:00
Joe R
a14eef2b60 Fixed bug where the preview can partially change the main game cardset. 2024-05-12 22:32:17 -04:00
Joe R
69b98c9982 Corrected list item tag. 2024-04-23 18:57:11 -04:00
lufebe16
34292e2743 Kivy/android:
- version 3.0.0 metadata updates
- fixed card flip duration
2024-04-04 19:30:48 +02:00
Joe R
0162c92740 Finalized 3.0 release. 2024-03-31 12:01:38 -04:00
Joe R
c6ad8148b0 3.0 release! 2024-03-31 11:49:28 -04:00
Joe R
eeea22da7f Some minor cleanup/final prep. 2024-03-31 11:43:00 -04:00
Joe R
a7f3741eb3 Cardsets package version 3. 2024-03-31 10:00:52 -04:00
Joe R
aa48e35166 Crediting Remix Icon as well. 2024-03-30 11:27:58 -04:00
Joe R
f28e69b0b0 Updated credits and copyright. 2024-03-30 11:22:04 -04:00
Joe R
e8bc34f6e6 Ishido is a required cardset type. 2024-03-30 07:51:40 -04:00
Joe R
4231e96668 Game categorization updates. 2024-03-28 23:32:56 -04:00
Joe R
9f78391e0d Added Obstruction game. 2024-03-28 20:31:27 -04:00
Martin
71e06d4f98
Optimize images to save 2.7MB (#363)
* Optimize PNGs with oxipng

* Optimize GIFs with gifsicle

* Optimize SVGs with svgo

* Optimize JPEGs with jpegoptim

---------

Co-authored-by: Joe R <joeraz5@verizon.net>
2024-03-27 23:15:37 -04:00
lufebe16
a392ef4054 Kivy/Android:
- metadata update
2024-03-27 11:30:16 +01:00
lufebe16
8a8b00baab Kivy/Android
- documentation
2024-03-27 09:28:22 +01:00
Joe R
be31314271 Added Trumps Row game. 2024-03-26 22:30:30 -04:00
lufebe16
468feeb4e1 Android/Kivy:
- metadata updates
- some cleanup
2024-03-23 10:53:26 +01:00
Joe R
d9d02d47ca Added category to the tree for games with jokers. 2024-03-21 18:28:01 -04:00
Joe R
526abc03ba Added Double Uintah game. 2024-03-21 17:37:25 -04:00
Joe R
c1421fc92f Some cleanup of Tarock game file. 2024-03-19 21:44:29 -04:00
Joe R
6375d53902 Corrected Aces Up rules. 2024-03-19 21:40:15 -04:00
Joe R
96a071fca0 Added Fool's Up game. 2024-03-19 21:37:33 -04:00
lufebe16
de50c45145 fixes: language (de) and cardset option (android version). 2024-03-18 13:15:29 +01:00
Joe R
96700c59e1 Cleanup of Mahjongg. Fixed the old layout import scripts. 2024-03-16 20:38:47 -04:00
Joe R
713f498068 Added Ninety-One game. 2024-03-16 14:52:10 -04:00
Joe R
d3a4548f69 Option to filter by game subcategory/cardset subtype. 2024-03-15 23:07:33 -04:00
Joe R
a6df89489a Fixed bug where deprecated game categories appear in Android version. 2024-03-15 20:32:29 -04:00
Joe R
572103b2c4 Klondike with jokers. 2024-03-15 19:35:03 -04:00
Joe R
b31ea75798 Added Cribbage Patience game. 2024-03-13 19:16:43 -04:00
lufebe16
77fd05e65a Android Version 2.24 2024-03-12 18:15:06 +01:00
Joe R
2dfca42824 Added Wildcards game. 2024-03-06 22:06:57 -05:00
Joe R
6c79c25195 Added additional clarification on suit order to Hanafuda documentation. 2024-03-06 21:42:03 -05:00
Joe R
1339a22ba4 Added Petal game. 2024-03-05 19:10:08 -05:00
Joe R
fc259817aa Alternate names. 2024-03-05 18:18:36 -05:00
lufebe16
1753f63034 android build scripts:
- bug fix
- refactoring
2024-03-05 13:22:14 +01:00
Joe R
28808ecc70 Added Big Alhambra game. 2024-03-03 14:15:59 -05:00
Joe R
32d735defc Update to all games script. 2024-03-03 12:53:56 -05:00
Joe R
351abaf907 Added Samegame game. 2024-03-03 11:38:13 -05:00
Joe R
3e70bdf149 A couple more variants for the Other Graphics options. 2024-02-29 23:12:31 -05:00
lufebe16
864e1a6fee fdroid.init updated 2024-02-26 16:45:52 +01:00
Joe R
44cf52f0a3 Added Morphy game. 2024-02-22 22:00:55 -05:00
Joe R
6f7c243664 Updated a couple games to use their more common name as the primary name. 2024-02-22 21:43:35 -05:00
Joe R
fe5013bdea Enhancements to Eighteens game. 2024-02-20 22:41:23 -05:00
Joe R
be12039d0f Loading the cardset to the cache at the start, to prevent errors when the preview switches cardset type. 2024-02-18 16:11:26 -05:00
Joe R
3547c5ad0a Alignment of Interlock type game foundations. 2024-02-18 13:00:47 -05:00
Joe R
4eebd5d33c Flake8 fix. 2024-02-15 22:59:52 -05:00
Joe R
9559173797 Fixed missing index in Love a Duck. 2024-02-15 22:34:51 -05:00
lufebe16
cba1fd815f - cardset prepare option changes (android build)
- action against occasional black screen on android resume
- startup phase cosmetics
2024-02-14 09:57:24 +01:00
Joe R
b42a43fb0f Added Eighteens game. 2024-02-11 21:19:05 -05:00
Joe R
65b013e7c8 Removed trailing space. 2024-02-11 11:23:48 -05:00
Joe R
9e90157d3e Added recent and favorite games filters to advanced search. 2024-02-11 11:10:18 -05:00
Joe R
af2f730816 Removed limit on number of pause/demo text images loaded per style. 2024-02-06 23:38:13 -05:00
Joe R
a94d0235b8 Added Vincent game. 2024-02-06 21:48:10 -05:00
lufebe16
4f2f17b166 Kivy/Android
- project metadata updates
2024-02-03 17:39:27 +01:00
Joe R
c36e2c68df Fixed flake8 in scripts. 2024-01-31 20:55:49 -05:00
Joe R
6d1b81d57b Take away is a golf type game, and other organization fixes. 2024-01-31 20:33:39 -05:00
Joe R
5b6496432c Added Appreciate game. 2024-01-31 20:19:10 -05:00
Joe R
2a1651cbc0 Fixed error in HTML generation. 2024-01-27 20:12:42 -05:00
Joe R
c50cfdd566 Fixed import order. 2024-01-26 22:31:57 -05:00
Joe R
fa63e28f0b Consolidated special games. 2024-01-26 21:51:13 -05:00
lufebe16
20533ac05e Kivy/Android
- some refactorings an clean ups
2024-01-23 15:39:24 +01:00
Joe R
ea7fe7c2e8 Separate directory for import/export boards, to avoid confusion with saved games. 2024-01-20 12:10:11 -05:00
Joe R
dc985d5882 Added Club game. 2024-01-20 11:29:49 -05:00
Joe R
c11f57ce11 Hint logic for Tile Puzzle. 2024-01-18 23:42:57 -05:00
Joe R
d7ec6a559a Working import for black hole solver games. 2024-01-18 22:17:19 -05:00
lufebe16
b4998aa341 Kivy/Android
- animation handling for special games
2024-01-16 09:31:33 +01:00
Joe R
5ba38d0688 Minor cleanup. 2024-01-15 23:15:50 -05:00
Joe R
5c4304ba44 Option to clear the recent games list. 2024-01-15 22:17:09 -05:00
lufebe16
d3067f2397 EightCards:
- index error on click to empty talon fixed.
- move pair when second click goes to reserve stack too.
2024-01-11 16:18:19 +01:00
lufebe16
7dd72522c4 Kivy/Android
- toolbar pos tied to device orientation
- added additional options for it
- refactoring
2024-01-11 10:34:41 +01:00
Joe R
caa85016b1 Added Sarlacc game. 2024-01-09 18:49:58 -05:00
lufebe16
97e90f147c Kivy/Android
- upstart sequence and fullscreen handling fixes
2024-01-08 14:54:12 +01:00
lufebe16
87fe16413e Kivy/Android
- refactoring
2024-01-08 14:54:12 +01:00
Joe R
a35f0ad2f5 Fixed error in Rosamund's Bower auto-deal logic. 2024-01-06 23:07:54 -05:00
Joe R
725ee0dcaa Added hexagonal pegged layout. 2024-01-06 21:55:47 -05:00
lufebe16
f6b5672cf6 Kivy/Android
- Demo now waits for animation end before next step.
- Demo command closes menu after selection.
- Hint arrow is kept on top during demo
- Hint arrow fading animation.
2024-01-04 14:23:43 +01:00
Joe R
e1b74be079 Fix for invalid sequence move in Blue Jacket. 2024-01-03 20:34:55 -05:00
Joe R
f466df1644 Added Blue Jacket game. 2024-01-03 20:33:48 -05:00
Joe R
d0a2b97a9e Added Rosamund's Bower game. 2024-01-03 19:30:57 -05:00
lufebe16
23657469c4 Kivy/Android
- added navigation buttons to html display
- fixed line formatting in html displays
- title line formatting as centered and multiline if needed
- html text rendering revised to circumvent hardware limits
- screen rotation lock changes
- balkenbreite
2024-01-03 09:50:02 +01:00
Joe R
301d461875 Added Quadruple Yukon variant. 2023-12-30 12:30:01 -05:00
Joe R
c835bc09aa Moved card size options to a new tab, for better experience on smaller monitors. 2023-12-30 09:40:48 -05:00
lufebe16
0ec7bc1cf8 flake8 2023-12-28 14:18:51 +01:00
lufebe16
49d4445c6b display of license text fixed in android 2023-12-28 12:20:06 +01:00
Joe R
20e0de112f New alternate names. 2023-12-26 11:44:03 -05:00
Joe R
499439bc13 Added Binary Star game. 2023-12-26 10:43:31 -05:00
Joe R
5852bad127 Disable favorite games menu when there are no favorites. 2023-12-26 09:26:36 -05:00
lufebe16
2017b4f23b Kivy/Android
- size of menu unified to 0.333 for landscape and 0.5 for portrait mode

- added code to hopefully prevent black screen on resume
- removed old outdated workarounds
2023-12-23 11:08:23 +01:00
lufebe16
2c48745781 Kivy/Android
- refactoring
2023-12-20 17:03:13 +01:00
Joe R
a961bca6ff Added Thirty-Nine Steps game. 2023-12-19 22:06:41 -05:00
Joe R
f190b3d30e Sorting of favorite games. 2023-12-19 21:59:58 -05:00
Joe R
dda8348806 Added Interlock and Love a Duck games. 2023-12-17 21:34:10 -05:00
lufebe16
7bc56fc101 Kivy/Android
- soft card flip
2023-12-13 18:23:58 +01:00
lufebe16
c5b22563a8 Kivy/Android
- switching of redeal images (redeal/stopped) corrected.
 - new wrapper class for options management. Refactorings.
 - redeal, pause and demo logo style selections updated.
2023-12-12 10:49:50 +01:00
Joe R
611bd37024 Added The Lucky Number game. 2023-12-10 15:53:41 -05:00
lufebe16
917e7a1311 Kivy/Android
- visual update of favorites list corrected
2023-12-10 11:18:38 +01:00
lufebe16
b49f82ad02 Kivy/Android
- card selection menu grouped by cardset type
2023-12-06 19:21:57 +01:00
lufebe16
9816c15d94 Kivy/Android
- updated mkcards
2023-12-06 11:08:57 +01:00
lufebe16
c9194ea419 Kivy/Android
- Introduced tree view generators in menubar.py
- applied to the option menu.
2023-12-06 10:05:04 +01:00
Joe R
1df1f6a80c Added four additional cardset styles. 2023-12-05 21:26:48 -05:00
Joe R
c2bc849fc1 Added Yukon Kings game. 2023-12-05 20:28:24 -05:00
lufebe16
2f87a554be Kivy/Android
- refactorings (menubar)
2023-12-04 15:24:42 +01:00
lufebe16
a36cb9ce12 Kivy/Android
- Refactoring of app start.
2023-12-04 14:30:35 +01:00
lufebe16
fa0d0cf144 Kivy/Android
- Text color adaptation to current background settings.
2023-12-04 14:30:35 +01:00
Sérgio Basto
0afc62478e
pycotap is not need to run PySolFC (#353)
pycotap is only needed for the single unittest, tap_unittests.py
2023-12-03 10:04:54 -05:00
Joe R
10af041972 Scoring option for Ishido. 2023-12-02 17:56:17 -05:00
Joe R
9db799f330 Ishido initial deals should include every color/symbol. 2023-12-02 16:42:04 -05:00
Joe R
3e5631dbb4 Corrected erroneous max cards logic in Fourteens game. 2023-12-01 22:33:34 -05:00
Joe R
50e7d65e31 Added Juvenile game. 2023-12-01 18:39:17 -05:00
lufebe16
224d21a2d2 Kivy/Android
- refactoring, hardening, flake8
2023-11-30 11:42:02 +01:00
Joe R
10c6b5c61d Open Proils is an open game. 2023-11-29 18:42:22 -05:00
Joe R
a99bacbb83 Added Valentine game. 2023-11-29 18:20:07 -05:00
lufebe16
288bd920af Kivy/Android
- reworked positioning during animations
2023-11-29 14:04:43 +01:00
lufebe16
ce0e6ff856 Kivy/Android
- solved some speed issues
- cleanups
2023-11-28 17:50:48 +01:00
lufebe16
2520934d35 Kivy
- Added notifications for save and load commands
- some fixes
2023-11-28 11:45:27 +01:00
lufebe16
492acd6961 Kivy/Android Version
- MfxCanvas implemented with new base class LImage
- MfxCanvas background updates adapted
- Screen rotation lock change: locks on card selection, i.e.
  when the user plays, unlocks on menu selection or pause.
- animations callback implemented in MfxCanvasGroup (mainly for
  mahjongg games) in order to have correct placments with undo
  when animation is enabled
- animation scheduling implemented on a tasking basis. New
  module LTaskQ added.
- refactorings and clean ups
2023-11-26 20:21:44 +01:00
Joe R
069c8e8a7b Fixed bug with the preview using the wrong cardset after loading one with a subtype. 2023-11-26 12:02:40 -05:00
Joe R
b05c922d3b Added missing game types to all games script. 2023-11-26 11:35:51 -05:00
Joe R
634937b076 Added Cascade game. 2023-11-24 13:57:49 -05:00
Joe R
78ca717778 Enhancements to other graphics menu. 2023-11-24 12:24:32 -05:00
lufebe16
c3ffbff146 Kivy Version
- refactorings & some clean up
2023-11-23 17:49:38 +01:00
Joe R
9609f5e133 Corrected a few typos and formatting issues in the rules. 2023-11-23 11:21:54 -05:00
Joe R
9fb0e33cb6 Added Devil's Grip game. 2023-11-20 20:21:06 -05:00
Joe R
7d1a70564e Split picture gallery type games into their own category. 2023-11-20 20:14:37 -05:00
lufebe16
2811ac4ba8 Android build
- updated to p4a v2023.09.16 (kivy 2.2.1, python 3.10)
2023-11-19 22:10:59 +01:00
lufebe16
b91e69964e Kivy Version:
- reimplemented LImage class (image placement) as a workaround to
  the stock image class (which has got some performance issues in
  never kivy versions).
- prevented pretyping during animations
- clean ups
2023-11-19 17:52:21 +01:00
Joe R
d613fd8b4b Updated restart icon. 2023-11-19 10:49:09 -05:00
Joe R
aaed778cd6 Added The Bogey game. 2023-11-19 10:06:10 -05:00
Joe R
6edb6f7222 Added lexterror's basket weave background. 2023-11-16 20:16:49 -05:00
Joe R
477fc8202c Added Klondike Territory game. 2023-11-16 19:11:56 -05:00
lufebe16
9a4df67df3 Kivy Version
- adjusted animation time settings
- some clean ups
2023-11-15 11:33:02 +01:00
Joe R
953c3fc9cb Added Komika style pause and demo text. 2023-11-14 20:42:58 -05:00
Joe R
9d3bae687d Added Eight Cards game. 2023-11-14 19:33:39 -05:00
Joe R
c8ea09c319 Added options to change/select other graphics. 2023-11-11 18:32:59 -05:00
Joe R
3483bd16a8 Restored lost Mahjongg layouts (see issue #301). 2023-11-11 12:27:33 -05:00
Joe R
19639b5727 Expanded popular games list. 2023-11-10 22:22:34 -05:00
Joe R
254f445388 Update the menu's game ID after changing the game, in case the user cancels. 2023-11-10 20:37:53 -05:00
lufebe16
5c51f927eb Kivy Version card placement revised, fixes:
- Mahjongg tile overlapping (3d simulation) implemented
- Animation is now synchronised (so as the tk version does)-
  This prevents some stacking order corruptions reported
  earlier.
2023-11-09 16:08:57 +01:00
Joe R
48f8a70989 Three and four deck Picture Gallery variants. 2023-11-05 14:56:22 -05:00
Joe R
c4a18d3557 Added Ishido game. 2023-11-05 13:12:02 -05:00
lufebe16
e01d0fe7a7 Android version.
- added code to resize 4k images in apk build.
- added code to resize '4k' cardsets in apk build.
- deleted obsolet directory android as anounced earlier.
2023-11-05 09:58:19 +01:00
lufebe16
92f1870b23 Kivy:
- Background image placement reworked.
2023-11-01 14:55:37 +01:00
Joe R
7e43859ad6 Separated table tiles into 4K and normal resolution. 2023-10-29 11:20:09 -04:00
lufebe16
c867b2b6d5 Android
- Build procedure adapted to load cardsets from PySolFC-Cardsets.
  (hopefully a temporary change)
2023-10-19 18:39:59 +02:00
lufebe16
b966794a9a Android
- filtering gif
- metadata updates
2023-10-19 16:39:35 +02:00
Joe R
7741fa7dcc Do not show "Uncategorized" cardsets list if all cardsets have been categorized. 2023-10-14 15:14:09 -04:00
Joe R
05fc7a8baa Added Alexander the Great game. 2023-10-14 12:58:48 -04:00
lufebe16
901a04bbb4 Kivy/Android:
- reworked screen rotation lock
- refactorings
2023-10-14 14:24:11 +02:00
Ciarán
0b0f8f6e72
Logo tweaks (#341)
* Commit SVG forms of both vertical and hoz logo

* Optimise SVGs through SVGO

* Make svg version of logo_vertical

* Run logo_vertical through SVGMO

* Switch to Open Sans version of A

* Hires exports

* Generate low res versions
2023-10-13 19:12:15 -04:00
Shlomi Fish
14184fea95 add some long-term tasks 2023-10-12 13:02:25 +03:00
Shlomi Fish
6896284776 add some long-term tasks 2023-10-12 12:13:26 +03:00
Joe R
5161a82b66 Added glossary entries for different deck types. 2023-10-09 20:23:16 -04:00
Joe R
be1929a33e Redeal stack for Archway (discussed in issue #332). 2023-10-09 19:24:52 -04:00
Joe R
622c8a455c Some minor HTML fixes/updates. 2023-10-02 20:55:37 -04:00
Joe R
e858b38de1 Added Yukon Cells game. 2023-10-02 17:24:51 -04:00
lufebe16
c027e6ca0e Kivy/Android:
- Added full picture hint to menu.
2023-09-30 17:08:07 +02:00
lufebe16
96699c8fa2 Kivy/Android version:
- toolbar posions top and bottom implemented
- localisation (de) updates
2023-09-28 18:00:14 +02:00
Joe R
529e8c006f Flake8 tweaks. 2023-09-27 20:26:52 -04:00
Joe R
a28aaeeb4f Added show full picture option for puzzle type games. 2023-09-27 20:04:12 -04:00
lufebe16
0112e831ff removed a redundancy from buildozer.init 2023-09-27 09:35:29 +02:00
Joe R
55d5111fb4 Added Ricochet game. 2023-09-24 20:11:24 -04:00
Joe R
7dd94e551c Added Crispy game. 2023-09-24 19:34:58 -04:00
lufebe16
969536551e kivy version
- toast emulation updated
- toolbar new and restart button behaviour reworked
2023-09-23 12:18:53 +02:00
Joe R
c85cdf608b Added Portugal to the list of cardset nationalities. 2023-09-22 21:56:53 -04:00
Joe R
b455e386f1 Added quad deck game variants. 2023-09-22 19:04:06 -04:00
lufebe16
ae9aa78cde more rework on toolbar and menu options
- toolbar button configurations added to option menu
 - refactoring
 - metadata (fastlane) updated
2023-09-21 12:18:55 +02:00
lufebe16
158c3137fd toolbar updates (#333)
- quit button removed, makes no sense with kivy/android version
- shuffle/autodrop button managed dynamically
- delayed execution on new and restart buttons, to prevent
  accicental activation while playing
2023-09-19 15:03:31 +02:00
Joe R
187bae25cb Added Dnieper game. 2023-09-17 22:32:09 -04:00
Joe R
3649bbb661 Added check to ensure that all necessary cardset types are available. 2023-09-17 20:01:01 -04:00
lufebe16
e7a1979477 android version:
- screen rotation lock added as proposed by issue #320
- triggered (maybe experimental) by a long tap (5 seconds) to the play ground.
2023-09-16 15:27:58 +02:00
Joe R
27e11a6a4f Added Seven Up game. 2023-09-14 19:14:15 -04:00
Joe R
40bd9f0093 Corrected missed logic in the Kivy menubar. 2023-09-14 18:25:12 -04:00
lufebe16
e5f675d132 updated kivy version to 2.2.1 (for python11) in buildozer/pipreq.txt
removed test.py from buildozer dir (shoudnt ever be).
2023-09-14 20:43:19 +02:00
Joe R
c4e87a1294 Added Astrocyte game. 2023-09-12 18:22:39 -04:00
Joe R
f947fe084f Made sure numbers in game names are correctly hyphenated. 2023-09-08 22:55:14 -04:00
Joe R
49fa530d65 Updated XM Solitaire compatibility list based on current standards. 2023-09-08 19:26:20 -04:00
Joe R
efcfba4922 Russian Patience fits with the Klondike type. 2023-09-05 20:38:23 -04:00
Joe R
8a1940b3d3 Added Tens game. 2023-09-05 18:32:34 -04:00
Joe R
df95421d91 Set up cardsets advanced search to only show options that are registered. 2023-09-05 17:26:40 -04:00
Joe R
b30334410b Moved startup splash screen option to the spash screen itself, so it's easier to know how to disable it. 2023-09-03 19:27:06 -04:00
Joe R
f10379af00 Added Relaxed Clock game. 2023-09-03 09:55:26 -04:00
Joe R
8c6310c0b1 Formic is more of a golf-type game, more commonly known as Ants. 2023-09-01 22:23:37 -04:00
Joe R
bafede48f8 Bottom images for jokers. 2023-09-01 18:47:20 -04:00
Joe R
fc84e712b3 Added Canberra game. 2023-08-30 21:24:50 -04:00
Joe R
96351ef518 More alternate names. 2023-08-29 19:52:45 -04:00
Joe R
3e132dcb94 Added Nine Across game. 2023-08-29 17:24:28 -04:00
Joe R
4674831507 Disabled (useless) hint in Matrix. 2023-08-27 12:55:28 -04:00
Joe R
3ef949d461 Added support for Picture Puzzle games, based on a concept from UltraSol. 2023-08-27 12:20:04 -04:00
Joe R
f9024e563a Refactoring of Hypotenuse and related games to remove unused parameters. 2023-08-25 20:38:11 -04:00
Joe R
d6b6eb6b98 Added Deuces and Queens game. 2023-08-23 19:16:54 -04:00
Joe R
d00762b352 Grand Duchess is in the Numerica game family. 2023-08-23 18:28:51 -04:00
Joe R
d93ad0dbfe Refactoring/cleanup of Aces and Kings game file. 2023-08-23 17:40:57 -04:00
Joe R
29f737c633 Added Napoleon's Shoulder game. 2023-08-20 21:32:26 -04:00
Joe R
7499599ba3 Fix for cardset viewer to support Matching cardsets. 2023-08-20 15:36:14 -04:00
Joe R
54178a10e5 Added Clear the Dungeon game. 2023-08-20 12:24:46 -04:00
Joe R
1e9151eedb Fixed some documentation typos. 2023-08-16 23:15:19 -04:00
Joe R
867029e24b Option to play Four Rivers without gravity. 2023-08-16 18:42:02 -04:00
Joe R
be47aee6be Updated display text for French cardsets to account for the possibility of jokers. 2023-08-14 19:59:08 -04:00
Joe R
a01090df65 Added Open Proils game. 2023-08-14 18:56:19 -04:00
Joe R
8fc0f28b2f Fixed play next song action. 2023-08-12 20:27:07 -04:00
Joe R
a8c34cd380 Added Stewart game. 2023-08-12 20:08:29 -04:00
Joe R
f0fb0500dd Updated copyright notice on formatter.py (see issue #331). 2023-08-12 19:47:02 -04:00
Joe R
fb25046868 Spacing updates for flake8. 2023-08-11 20:56:29 -04:00
Joe R
13a29b34ea
Version 7 of the cardset format with subtype and joker support. (#330) 2023-08-11 20:30:29 -04:00
2847 changed files with 20958 additions and 5089 deletions

View file

@ -1,16 +1,16 @@
---
image: Visual Studio 2019
image: Visual Studio 2022
environment:
matrix:
- PYTHON: "C:\\Python311"
- PYTHON: "C:\\Python313"
# Shamelessly taken from https://github.com/plicease/Dist-Zilla-PluginBundle-Author-Plicease/blob/master/.appveyor.yml
# Thanks!
install:
# - choco install strawberryperl
- copy %PYTHON%\python.exe %PYTHON%\python3.exe
- SET PATH=%PYTHON%;%PYTHON%\Scripts;C:\strawberry\c\bin;C:\strawberry\perl\site\bin;C:\strawberry\perl\bin;%PATH%
- python3 -mpip install Pillow==9.5 attrs configobj flake8 flake8-import-order
pycotap pygame pyinstaller pysol-cards random2 setuptools six
- python3 -mpip install Pillow attrs configobj flake8 flake8-import-order
pycotap pygame pyinstaller pysol-cards setuptools six
ttkthemes
- perl -v
- copy C:\msys64\mingw64\bin\mingw32-make.exe C:\msys64\mingw64\bin\make.exe
@ -32,13 +32,13 @@ test_script:
- gmake pretest
- perl run-tests.pl
- gmake rules
- gmake pot
- gmake mo
#- gmake pot
#- gmake mo
- pyinstaller pysol.py --windowed --icon=data\pysol.ico
- python3 setup.py install_data -d dist\pysol
- appveyor DownloadFile https://sourceforge.net/projects/pysolfc/files/PySolFC-Cardsets/minimal/PySolFC-Cardsets--Minimal-2.2.0.tar.xz/download -FileName cardsets.tar.xz
- appveyor DownloadFile https://sourceforge.net/projects/pysolfc/files/PySolFC-Cardsets/minimal/PySolFC-Cardsets--Minimal-3.0.0.tar.xz/download -FileName cardsets.tar.xz
- 7z x cardsets.tar.xz -so | 7z x -si -ttar
- mv PySolFC-Cardsets--Minimal-2.2.0/cardset-* dist/pysol/data
- mv PySolFC-Cardsets--Minimal-3.0.0/cardset-* dist/pysol/data
- appveyor DownloadFile https://sourceforge.net/projects/pysolfc/files/PySol-Music/PySol-Music-4.50/pysol-music-4.50.tar.xz/download -FileName music.tar.xz
- 7z x music.tar.xz -so | 7z x -si -ttar
- move pysol-music-4.50\data\music dist\pysol\data\music
@ -51,7 +51,7 @@ test_script:
# For reproducible builds:
# See: https://reproducible-builds.org/ .
- SET FC_SOLVE_VER=5.20.0
- appveyor DownloadFile https://netix.dl.sourceforge.net/project/fc-solve/fc-solve/DO-NOT-USE--fc-solve-for-pysol/fc-solve-for-pysol--v%FC_SOLVE_VER%.zip -FileName fc-solve.zip
- appveyor DownloadFile https://sourceforge.net/projects/fc-solve/files/fc-solve/DO-NOT-USE--fc-solve-for-pysol/fc-solve-for-pysol--v%FC_SOLVE_VER%.zip -FileName fc-solve.zip
- 7z x fc-solve.zip
- move fcs-pysol dist\pysol\freecell-solver
- 7z a -r pysol_win_dist.7z dist\pysol\

View file

@ -23,7 +23,7 @@ jobs:
run: |
python -m pip install --upgrade pip
python -m pip install flake8 flake8-import-order \
attrs configobj pycotap pysol-cards random2 setuptools six
attrs configobj pycotap pysol-cards setuptools six
if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
- name: Lint with flake8
run: |

View file

@ -7,7 +7,7 @@ on:
jobs:
build:
runs-on: macos-12
runs-on: macos-14
steps:
- uses: actions/checkout@v2
@ -23,14 +23,14 @@ jobs:
run: |
python3 -m pip install --upgrade pip
python3 -m pip install --no-binary=Pillow \
Pillow attrs configobj py2app pycotap pygame pysol-cards random2 setuptools six ttkthemes
Pillow attrs configobj py2app pycotap pygame pysol-cards setuptools six ttkthemes
if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
brew install create-dmg
- name: Get cardsets
run: |
wget -O cardsets-pack.tar.xz "https://sourceforge.net/projects/pysolfc/files/PySolFC-Cardsets/minimal/PySolFC-Cardsets--Minimal-2.2.0.tar.xz/download"
wget -O cardsets-pack.tar.xz "https://sourceforge.net/projects/pysolfc/files/PySolFC-Cardsets/minimal/PySolFC-Cardsets--Minimal-3.0.0.tar.xz/download"
tar -xJf cardsets-pack.tar.xz
mv PySolFC-Cardsets--Minimal-2.2.0/cardset-* data
mv PySolFC-Cardsets--Minimal-3.0.0/cardset-* data
- name: Prepare game rules (process the HTML) and translations
run: |
make rules mo
@ -49,12 +49,12 @@ jobs:
--skip-jenkins
PySolFC.dmg dist
- name: Upload zipped app
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v4
with:
name: pysolfc-app
path: PySolFC-app.zip
- name: Upload dmg
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v4
with:
name: pysolfc-dmg
path: PySolFC.dmg

6
.gitignore vendored
View file

@ -10,7 +10,6 @@
/html
/html-src/html/*
/images
/locale/*
/po/de.po
/po/fr.po
/po/it.po
@ -23,11 +22,16 @@ PySolFC-Cardsets--Minimal-2.0.*
PySolFC-Cardsets--Minimal-2.0/
PySolFC-Cardsets-2.0.*
PySolFC-Cardsets-2.0/
PySolFC-Cardsets--Minimal-3.0.*
PySolFC-Cardsets--Minimal-3.0/
PySolFC-Cardsets-3.0.*
PySolFC-Cardsets-3.0/
android/*.apk
android/*.zip
android/bin/keystore
buildozer/.buildozer*
buildozer/PySolFC-Cardsets*
buildozer/cardsets
buildozer/bin
buildozer/tmp
buildozer/support*

View file

@ -30,8 +30,8 @@ deploy:
before_install:
- if test "$TRAVIS_OS_NAME" = "osx" ; then
wget --content-disposition https://sourceforge.net/projects/pysolfc/files/PySolFC-Cardsets/minimal/PySolFC-Cardsets--Minimal-2.2.0.tar.xz/download &&
tar xJf PySolFC-Cardsets--Minimal-2.2.0.tar.xz &&
mv PySolFC-Cardsets--Minimal-2.2.0/cardset-* data ;
tar xJf PySolFC-Cardsets--Minimal-3.0.0.tar.xz &&
mv PySolFC-Cardsets--Minimal-3.0.0/cardset-* data ;
fi
- if test "$TRAVIS_OS_NAME" = "osx" ; then
PYVER=3.9.1 &&
@ -46,7 +46,7 @@ install:
# Tests are failing for them sometimes
- cpanm --notest Capture::Tiny IPC::System::Simple
- cpanm Code::TidyAll::Plugin::Flake8 Perl::Tidy Test::Code::TidyAll Test::Differences Test::TrailingSpace
- export PY_MODS='attrs configobj pycotap pysol-cards random2 setuptools six'
- export PY_MODS='attrs configobj pycotap pysol-cards setuptools six'
- if test "$TRAVIS_OS_NAME" = "osx" ; then export PY_MODS="--no-binary=Pillow Pillow $PY_MODS" ; fi
- sudo -H pip3 install --upgrade wheel
- sudo -H pip3 install --upgrade $PY_MODS flake8 flake8-import-order

View file

@ -11,12 +11,12 @@ Main Authors
* macOS package maintainer
* [Shlomi Fish](https://www.shlomifish.org/)
* Continued PySolFC maintenance, port to python 3, test suite (Note: he places all his changes under the Expat licence).
* https://github.com/lufebe16
* Added the Kivy toolkit
* [lufebe16](https://github.com/lufebe16)
* Added the Kivy toolkit and all the Android app related code and build procedures.
* [Roderik Ploszek](https://github.com/Programator2)
* Fixes and enhancements
* [Joe R.](https://github.com/joeraz)
* Continued PySolFC maintenance and development.
* Many new games and continued PySolFC maintenance and development.
Games contributors
==================
@ -36,6 +36,7 @@ Enhancements
* [ghostofiht](https://github.com/ghostofiht) - Contributed a new logo design.
* [Trueno font](https://fontlibrary.org/en/font/trueno) under the [OFL](https://en.wikipedia.org/wiki/SIL_Open_Font_License) by [Julieta Ulanovsky](http://www.zkysky.com.ar/) - used in the logo.
* [Remix Icon](https://remixicon.com/) - used for many icons throughout the app.
Translations
============

View file

@ -7,7 +7,7 @@ for general guidelines for contributing to open source.
- The [GitHub Actions CI build](https://github.com/shlomif/PySolFC/actions) and [AppVeyor build](https://ci.appveyor.com/project/shlomif/pysolfc) (which also run the test suite) should pass on each commit.
- Your contributions should be under [GPLv3+](https://en.wikipedia.org/wiki/GNU_General_Public_License#Version_3) or a [compatible free software licence](https://www.gnu.org/licenses/license-list.html#GPLCompatibleLicenses), but please don't put them under the [AGPL](https://en.wikipedia.org/wiki/Affero_General_Public_License), which adds additional restrictions.
- The code should be compatible with both Python 2.7.x and Python 3.4.x-and-above.
- The code should be compatible with Python 3.7 and above.
# How you can contribute
@ -32,7 +32,7 @@ custom variants. It lives in the Edit menu.
Otherwise, the games' sources live under
[the pysollib/games/](pysollib/games/) directory in the repository, and are
written in Python 2.7/3.x and you can try inheriting from an existing
written in Python 3.x and you can try inheriting from an existing
variant [class](https://en.wikipedia.org/wiki/Class_%28computer_programming%29).
In addition to adding the game's source code, be sure to add the game's metadata. At minimum, you should:
@ -49,6 +49,8 @@ or Google Drive).
# The Release Process
Before publishing a release, please open an issue in GitHub, indicating your intent to do so, to confirm with any other developers if they have any objections, or any WIP features/tickets that should be included in the upcoming release. It's best to do this a week or two before you plan to actually publish the release. No responses on this for a couple weeks can be considered approval to proceed. Releases tagged without verifying with other developers may be removed.
In order to publish a new version, follow these steps:
1. Update `NEWS.asciidoc`. The release notes should also be added to `html-src/news.html`, along with `templates/index.html` in the website repo.
@ -64,3 +66,15 @@ In order to publish a new version, follow these steps:
11. Use [rexz9](https://github.com/shlomif/shlomif-computer-settings/blob/567b6ab3f4272ad66bf331536dc80bf58bfff3af/shlomif-settings/bash-aliases/user_aliases.bash#L57) on `dist/PySol*.tar.xz`.
12. Go to https://sourceforge.net/projects/pysolfc/files/PySolFC/ and add a folder called PySolFC-2.6.5 (note the capitalisation).
13. Add the tar.xz, the .exe and the .dmg there and mark them as defaults for the right OSes.
# Long-term, large-scale, tasks
Support SVG cardsets.
An optional [REPL](https://en.wikipedia.org/wiki/Read%E2%80%93eval%E2%80%93print_loop) (Read-eval-print loop)
Listen on a TCP / HTTP+REST port.
A web-based version.
Support a more secure saved-games format than the pickle-based-one.

View file

@ -12,7 +12,7 @@ include pysollib/winsystems/*.py
include pysollib/tk/*.py pysollib/tile/*.py pysollib/pysolgtk/*.py
include pysollib/game/*.py
include pysollib/games/*.py pysollib/games/special/*.py
include pysollib/games/ultra/*.py pysollib/games/mahjongg/*.py
include pysollib/games/mahjongg/*.py
include data/tcl/*.tcl
include data/pysol.desktop
include data/pysolfc.glade

View file

@ -1,5 +1,28 @@
[[news]]
=== News
* _11 January, 2025:_ There is a new stable release
https://sourceforge.net/projects/pysolfc/files/PySolFC/PySolFC-3.2.0/[PySolFC
v3.2.0]. New in this release:
** New fullscreen mode, accessible by pressing F11.
** Easy option to clear advanced search options.
** Lots of bugfixes and enhancements.
* _19 October, 2024:_ There is a new stable release
https://sourceforge.net/projects/pysolfc/files/PySolFC/PySolFC-3.1.0/[PySolFC
v3.1.0]. New in this release:
** Ten new games.
** Cleanup of duplicate images to reduce package size.
** Some extra cardset/table tile filter options.
** Many enhancements, bugfixes, etc.
* _31 March, 2024:_ There is a new stable release
https://sourceforge.net/projects/pysolfc/files/PySolFC/PySolFC-3.0.0/[PySolFC
v3.0.0] - the biggest release in over 15 years. Additionally, there is a new Cardsets release
https://sourceforge.net/projects/pysolfc/files/PySolFC-Cardsets/PySolFC-Cardsets-3.0/[PySolFC-Cardsets v.3.0]. New in this release:
** 120 new games.
** Support for several new types of games/decks, including tile puzzles, Ishido-type tile matching games, joker deck games, and more.
** New game and cardset categories.
** Ability to change the style of virtually any of the graphics in PySol.
** Some UI/Quality of Life improvements.
** Bugfixes.
* _10 July, 2023:_ There is a new beta release
https://sourceforge.net/projects/pysolfc/files/PySolFC/PySolFC-2.21.0/[PySolFC
v2.21.0]. New in this release:

View file

@ -1,17 +1,28 @@
Prerequisites (needs root):
History:
--------
IMPORTANT:
Scripts and instruction in directory 'android' are OUTDATED and
not maintained any more. Instead refer to directory 'buildozer'.
The Android project was created in 2016 as a separate project (on Bitbucket)
forked from a long inactive Sourceforge repository by lufebe16. The first
version (as 0.8) was released with fdroid in March 2017.
You need a linux workstation (either native or virtual). No graphic
desktop is needed, cmdline only is sufficient.
In 2016, shlomif started working diligently on the official project.
Following his request to combine these two projects, the Android version
was merged into his repo (now on github) in February 2018. The
first joint version (as 2.2.0) was released in April 2018.
Build Prerequisites (needs root):
---------------------------------
You need a linux workstation (either native or virtual). It needs
x86 hardware (either intel or amd). No graphic desktop is needed,
cmdline only is sufficient.
On freshly installed systems you will need to add about the
following packages:
On a 'freshly installed' Ubuntu or Debain , the following
On a 'freshly installed' Ubuntu or Debian, the following
additional packages had to be installed:
- python-setuptools
@ -37,7 +48,7 @@ Prerequisites (needs root):
- dev-vcs/git
- dev-java/ant
For further instructions consult buildozer/build-instruction.txt.
For detailed instructions consult buildozer/build-instruction.txt.
NOTES:
1) This information is supplied to give you a hint, when running into
@ -46,40 +57,27 @@ Prerequisites (needs root):
6 GB of free disk space.
Cardsets:
---------
The Apk includes a minimal set of cards for playing.
On Android 9 and lower you can also add additional cardsets:
Additional user supplied data:
------------------------------
Additional cardsets can be installed in ${HOME}/.PySolFC/cardsets/.
On an android device this is equivalent to /sdcard/.PySolFC/cardsets/.
Cardsets must use the 'png' image format. Use scripts/cardconv
(on a linux system) to convert them, before copying them to the device.
NOTE:
To be able to add additional resources to your app, you need to
enable storage access in the android settings for the app. Go to
Settings/Apps/PySolFC/Permissions.
IMPORTANT: This can only be supported for Android Version 9 and lower.
Android as of Version 10 and later restricts access to so called
'external-storage' drasitcally. There is currently no way around it
with the given application.
Resources are stored in ~/.PySolFC/. On an android device this is
equivalent to /sdcard/.PySolFC/.
LB230301.
Additional cardsets can be installed in ~/.PySolFC/cardsets/.
Important: Cardsets must use the 'png' image format. Use
scripts/cardconv (on a gnu/linux system) to convert, before copying
them to the device.
(After new changes as of 27.3.23 - not contained in the last f-droid
version):
Allow external storage access for Android 10 and later.
- on Android 10 it ist still possible to write to the extenal storage. A
user has to manually allow at least access to media files in the
settings for the app.
- For later Versions the MANAGE_EXTERNAL_STORAGE permission was added
to the Android Manifest. If the Android 12 user wants to store
and read Files from /sdcard/.PySolFC directory he/she can enable
'Allow management of all Files' in the settings.
NOTE:
This is actually against the policies of Google and such an app
would fairliy get published on Play Store - but its the simplest
way to get this working again. Only users that need this (e.g. because
they want to install additional Cardsets) need to do that. The app will
never query you for that. You may do it on your own.
LB230327.
Byond cardsets you may also wish to add your own backgrounds. You can
add them to ~/.PySolFC/data/tiles (patterns) and to
~/.PySolFC/data/tiles/save-aspect/ (images). 'png' and 'jpg' image
formats are supported.

View file

@ -2,7 +2,7 @@
Introduction
------------
This is a version of the PySol FC open source project
This is a version of the PySolFC open source project
(http://pysolfc.sourceforge.net)
Early investigations of the code showed, that it would not be
@ -25,24 +25,18 @@ Images
The original images supplied by the collection are of type
gif. In kivy, that image type loads very slowly. Moreover, many
cards cannot be loaded, because of decoding errors.
To prevent these problems, the kivy version was
modified to not read any gif images.
To prevent these problems, the kivy version was modified to not read
any gif images.
Some cardsets have been translated to PNG, a format
that is processed by both the tk and the kivy versions.
For all GIF images in the directories data/images and data/tiles,
corresponding images in the PNG format have been added.
Some others, for which transparency information is not
processed correctly even from the PBF images, have been translated
to the BMP image format (while keeping their GIF variant for
the tk version). BMP format is only processed by the
kivy version.
To convert the cardsets to png format, a shell script, 'cardconv' , has been
added to the scripts directory. It requires Bash and ImageMagick
to be installed.
Additional cardsets are available from the SourceForge
project. To use them with kivy, they need to be converted to
the BMP format. A shell script, 'cardconv' , has been added
to the scripts directory (it requires Bash and ImageMagick).
Additional cardsets are available from the SourceForge project. To use
them with kivy, make sure they to also convert them to the png format if
needed.
For all GIF images in the directories data/images and data/tiles ,
corresponding images in the PNG format have been added too.
LB170321.
LB230126.

View file

@ -31,7 +31,7 @@ can be implemented.
## Requirements.
- Python (2.7 or 3.x)
- Python (3.7 or later)
- Tkinter (Tcl/Tk 8.4 or later)
- For sound support (optional)
@ -97,10 +97,10 @@ cd PySolFC
gmake test
gmake rules
ln -s data/images images
tar -xvf PySolFC-Cardsets-2.0.tar.bz2 # Needs to be downloaded from sourceforge
tar -xvf PySolFC-Cardsets-3.0.tar.bz2 # Needs to be downloaded from sourceforge
mkdir -p ~/.PySolFC
rmdir ~/.PySolFC/cardsets
ln -s "`pwd`/PySolFC-Cardsets-2.0" ~/.PySolFC/cardsets
ln -s "`pwd`/PySolFC-Cardsets-3.0" ~/.PySolFC/cardsets
python pysol.py
```
@ -118,21 +118,18 @@ per the instructions above.
At the moment, this only works on POSIX (Linux, FreeBSD and similar) systems.
Windows and Mac users - you'll need to chip in with a script for your system.
#### 1 - Install build prerequisites: six, random2 and pysol-cards
#### 1 - Install build prerequisite: pysol-cards
This is kind of stupid and maybe it can be fixed in the future, but for now:
```
pip install six
pip install random2
pip install pysol-cards
```
You may want to use your OS distribution package system instead, for example:
```
sudo apt-get install python-six
sudo apt-get install python-random2
sudo apt-get install python3-pysol-cards
```
For Pillow compilation, libjpeg headers and libraries need to be available:
@ -173,7 +170,7 @@ mkdir -p "$PKGTREE"
### Alternate toolkit.
- Kivy (10.0 or later)
- Kivy
- Features:
- Sound support integrated.
- Android apk build support.
@ -189,7 +186,11 @@ On the basis of Kivy an Android App is also available. You may build
your own using appropriate build instructions in README.android and
in Directory buildozer.
Some versions will also be published on F-droid (https://f-droid.org)
Some versions will also be published on F-droid.
[<img src="https://fdroid.gitlab.io/artwork/badge/get-it-on.png"
alt="Get it on F-Droid"
height="80">](https://f-droid.org/packages/org.lufebe16.pysolfc/)
### Configuring Freecell Solver

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1,001 KiB

After

Width:  |  Height:  |  Size: 972 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 MiB

After

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 660 KiB

After

Width:  |  Height:  |  Size: 642 KiB

View file

@ -1,7 +0,0 @@
This android build setup ist out-dated.
Please use the new setup presented in directory
buildozer.
LB221118.

View file

@ -1,16 +0,0 @@
Actions to take upon a freshly installed Debian stretch/xfce (virtualbox).
Do something like:
user$ su
- enter root password.
root$ ./apt-install.sh
- .... some output.
root$ exit
Now all required packages are installed to proceed with the
android build.
LB170709.

View file

@ -1,34 +0,0 @@
#!/bin/sh
set -e
# install as root
apt-get install -y \
git \
openjdk-8-jdk \
cython3 \
python3-pip \
python3-yaml \
virtualenv \
pkg-config \
automake autoconf libtool \
zlib1g-dev \
libsdl2-dev libsdl2-image-dev libsdl2-mixer-dev libsdl2-ttf-dev \
libtinfo5 \
lld
update-alternatives --set java /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java
apt-get install -y --no-install-recommends \
imagemagick \
python3-tk \
ccache \
libltdl-dev
# set python3 as default.
# make python alternatives selectable.
# (debian stretch, adapt for different versions)
update-alternatives --install /usr/bin/python python /usr/bin/python2.7 1
update-alternatives --install /usr/bin/python python /usr/bin/python3.5 2

View file

@ -1,31 +0,0 @@
#!/bin/bash
set -eux
# This script mimics the instructions laid out in the p4a documentation:
# https://python-for-android.readthedocs.io/en/latest/quickstart/
. mkp4a.common
urlbase=https://dl.google.com/android/repository/
if [[ -d $ndkdir ]]; then
echo "Skipping NDK installation: NDK directory already exists."
else
mkdir -p $ndkdir
ndk_zip=android-ndk-${ndkver}-linux-x86_64.zip
[ -a $ndk_zip ] || wget $urlbase/$ndk_zip
unzip -d $(dirname $ndkdir) $ndk_zip
fi
if [[ -d $sdkdir ]]; then
echo "Skipping SDK installation: SDK directory already exists."
else
mkdir -p $sdkdir
tools_zip=sdk-tools-linux-4333796.zip
[ -a $tools_zip ] || wget $urlbase/$tools_zip
unzip -d $sdkdir $tools_zip
$sdkdir/tools/bin/sdkmanager 'platforms;android-27'
$sdkdir/tools/bin/sdkmanager 'build-tools;29.0.1'
fi

View file

@ -1,10 +0,0 @@
#!/bin/bash
set -eux
# Download android support library from maven
. mkp4a.common
liburl="https://maven.google.com/com/android/support/support-v4/24.1.1"
libname="support-v4-24.1.1.aar"
. mkp4a.preload supportlib ${liburl} ${libname}

View file

@ -1,37 +0,0 @@
#!/usr/bin/env python3
# ---------------------------------------------------------------------------
#
# PySol -- a Python Solitaire game
#
# 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 2 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; see the file COPYING.
# If not, write to the Free Software Foundation, Inc.,
# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
# ---------------------------------------------------------------------------
# Starter for kivy/android using buildozer: Needs an explizitly
# named main.py as startpoint.
import sys
if '--kivy' not in sys.argv:
sys.argv.append('--kivy')
runmain = True
if runmain:
from pysollib.init import init
init()
if runmain:
from pysollib.main import main
sys.exit(main(sys.argv))

View file

@ -1,27 +0,0 @@
#!/bin/bash
set -eux
. mkp4a.common
echo '### prepare cardsets'
if [ ! -f ${cardsets_file} ]; then
echo '### downloading cardsets'
wget https://netix.dl.sourceforge.net/project/pysolfc/PySolFC-Cardsets/minimal/${cardsets_file}
fi
if [ ! -d ${cardsets_dir} ]; then
echo '### extracting cardsets'
tar -xf ${cardsets_file}
fi
echo '### processing cardsets'
(
cd ${cardsets_dir}
../../scripts/cardconv gif png
for i in cardset-*-png; do
rm -rf `basename $i -png`
done
)
echo '### end cardsets'

View file

@ -1,13 +0,0 @@
#!/bin/bash
set -eux
# memo:
# keytool -genkey -v -keystore my-release-keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 12000
mkdir -p bin
if [ -f ./bin/keystore ]; then
echo "keystore is already defined"
else
keytool -genkey -v -keystore ./bin/keystore -alias python -keyalg RSA -keysize 2048 -validity 12000
fi

View file

@ -1,8 +0,0 @@
#!/bin/bash
set -eux
rm -rf tmp
python3 -m pythonforandroid.toolchain clean_dists
python3 -m pythonforandroid.toolchain clean_builds
rm -f *.apk
rm -rf PySolFC-Cardsets--Minimal-2.2.0

View file

@ -1,13 +0,0 @@
#!/bin/bash
set -e
rm -rf tmp
rm -f *.apk
rm -f *.bz2
rm -f *.zip
rm -rf PySolFC-Cardsets-2.0
rm -rf ~/.local/share/python-for-android/packages
rm -rf ~/.local/share/python-for-android/build
rm -rf ~/.local/share/python-for-android/dists
python3 -m pip uninstall python-for-android -y
exit 0

View file

@ -1,36 +0,0 @@
# Common constants for various scripts in this directory.
version=$(PYTHONPATH=.. python3 -c \
'from pysollib.settings import VERSION; print(VERSION)')
tmpdir=${HOME}/.cache/tmp-for-p4a/pysolfc/src
cardsets_dir='PySolFC-Cardsets--Minimal-2.2.0'
cardsets_file="${cardsets_dir}.tar.xz"
p4aver="2019.10.6"
ndkver="r19c"
sdkdir="${HOME}/.cache/sdk-for-p4a/sdk"
ndkdir="${HOME}/.cache/sdk-for-p4a/android-ndk-${ndkver}"
pkgdir="${HOME}/.local/share/python-for-android/packages"
# gradle may need this.
export TERM="xterm"
p4a_options="\
--sdk-dir ${sdkdir} \
--ndk-dir ${ndkdir} \
--dist-name pysolfc \
--name PySolFC \
--package org.lufebe16.pysolfc \
--version ${version} \
--bootstrap sdl2 \
--requirements python3,attrs,configobj,kivy,pysol-cards,random2,six \
--private ${tmpdir} \
--orientation sensor \
--icon ${tmpdir}/data/images/icons/48x48/pysol.png \
--presplash ${tmpdir}/data/images/logo-with-margin-1024.png \
--copy-libs \
--add-jar ${tmpdir}/support-v4-24.1.1.aar \
--color always"

View file

@ -1,11 +0,0 @@
#!/bin/bash
set -eux
. mkp4a.common
new_options=${p4a_options}
new_options=${new_options/PySolFC/PySolFCdbg}
new_options=${new_options/org.lufebe16.pysolfc/org.lufebe16.pysolfc.dbg}
python3 -m pythonforandroid.toolchain apk \
${new_options}

View file

@ -1,71 +0,0 @@
#!/bin/bash
set -eux
. mkp4a.common
# NOTE: $1 will be set with fdroid builds only.
echo '### prepare sdk'
if [[ $# == 0 ]]
then
./initsupport
./initsdk
fi
echo '### install p4a'
if [[ $# == 0 ]]
then
if not python3 -m pip install -q --user "python-for-android==${p4aver}"
then
echo "obviously inside a virtualenv, so omit --user"
if python3 -m pip install -q "python-for-android==${p4aver}"
then
echo "done"
fi
else
echo "done"
fi
fi
echo '### prepare source'
(cd .. && make rules && make all_games_html && make mo)
mkdir -p ${tmpdir}
rm -rf ${tmpdir}
cp -a .. ${tmpdir}
rm -rf ${tmpdir}/android
rm -rf ${tmpdir}/src
# remove useless load from the app
rm -rf ${tmpdir}/.git
rm -rf ${tmpdir}/.gitignore
rm -rf ${tmpdir}/Screenshots
rm -rf ${tmpdir}/build
rm -rf ${tmpdir}/contrib
rm -rf ${tmpdir}/dist
rm -rf ${tmpdir}/runtests.pl
rm -rf ${tmpdir}/tests
rm -rf ${tmpdir}/Brewfile
rm -rf ${tmpdir}/.appveyor.yml
rm -rf ${tmpdir}/.perltidyrc
rm -rf ${tmpdir}/.travis.yml
rm -rf ${tmpdir}/setup.py
rm -rf ${tmpdir}/setup_osx.py
rm -rf ${tmpdir}/setup.cfg
cp -a ${pkgdir}/supportlib/support-v4-24.1.1.aar ${tmpdir}
cp -a main.py ${tmpdir}
mkdir -p ${tmpdir}/data/images/cards/bottoms/trumps-only
echo "" > ${tmpdir}/data/images/cards/bottoms/trumps-only/.keep
echo '### prepare cardsets'
./mkcards
cp -a ${cardsets_dir}/* ${tmpdir}/data
echo '### end init'

View file

@ -1,30 +0,0 @@
#!/bin/bash
# package preload helper for fdroid build.
set -eux
if [[ $# < 3 ]]
then
exit 1
fi
packagebase=${HOME}'/.local/share/python-for-android/packages'
packagedir=${packagebase}/$1
packageurl=$2
packagename=$3
packagemark='.mark-'${packagename}
if [[ $# == 4 ]]
then
packagemark='.mark'$4
fi
mkdir -p ${packagedir}
cd ${packagedir}
if [ ! -f ${packagemark} ]
then
wget -nv ${packageurl}/${packagename}
touch ${packagemark}
fi

View file

@ -1,43 +0,0 @@
#!/bin/bash
set -e
. mkp4a.common
pass1=""
pass2=""
keyalias="python"
keystore="${PWD}/bin/keystore"
if [ $1 ]; then
pass1=$1
pass2=$1
else
echo "usage: ./mkp4a.release <keystore-password> [<keyalias-password>] [<keyalias>] [<keystore-path>]"
echo " (use ./mkkeystore to create one in default location)"
exit
fi
if [ $2 ]; then
pass2=$2
fi
if [ $3 ]; then
keyalias=$3
fi
if [ $4 ]; then
keystore=$4
fi
export P4A_RELEASE_KEYSTORE="$keystore"
export P4A_RELEASE_KEYSTORE_PASSWD="$pass1"
export P4A_RELEASE_KEYALIAS_PASSWD="$pass2"
export P4A_RELEASE_KEYALIAS="$keyalias"
python3 -m pythonforandroid.toolchain apk \
${p4a_options} \
--release \
--sign
# keystore options (instead environment vars):
#
# keystore: --keystore <file>
# key alias --signkey <keyalias>
# keystore passwd --keystorepw <pass1>
# key passwd --signkeypw <pass2>

View file

@ -1,29 +0,0 @@
#!/bin/bash
set -eux
. mkp4a.common
# NOTE: $1 and $2 (sdk and ndk) used with fdroid build only.
if [[ $# == 2 ]]
then
sdkdir=$1
ndkdir=$2
fi
python3 -m pythonforandroid.toolchain apk \
${p4a_options} \
--sdk-dir ${sdkdir} \
--ndk-dir ${ndkdir} \
--release
# python3 -m pythonforandroid.toolchain apk
# ...
# --release #1
# --sign #2
# ...
#
# ad 1,2:
# ohne: -> debug version
# 1: -> release unsigned
# 1 und 2: -> release version.

View file

@ -1,33 +0,0 @@
#!/usr/bin/env python3
# ---------------------------------------------------------------------------
#
# PySol -- a Python Solitaire game
#
# 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 2 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; see the file COPYING.
# If not, write to the Free Software Foundation, Inc.,
# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
# ---------------------------------------------------------------------------
# import pychecker.checker
# Starter for kivy/android using buildozer: Needs an explizitly
# named main.py as startpoint.
if True:
import sys
sys.path.insert(0, '..')
if True:
from pysollib.settings import VERSION
print(VERSION)

View file

@ -9,7 +9,7 @@
<name>PySolFC</name>
<summary>Solitaire game compilation</summary>
<description>
<p>A collection of more than 1000 Solitaire games, using various deck types
<p>A collection of more than 1200 Solitaire games, using various deck types
including international standard, hex-a-deck, mahjongg, and hanafuda.</p>
</description>
<launchable type="desktop-id">pysol.desktop</launchable>

19
buildozer/aversion Executable file
View file

@ -0,0 +1,19 @@
#!/bin/bash
appdir=""
if [ "$1" ]
then
appdir=$1
else
exit 1
fi
# current android version mumber.
version="3.2.0"
sversion=$(echo $version | sed -E "s:(.*)\..*:\1:")
tuple=$(echo $version | sed -E "s:(.*)\.(.*)\.(.*):(\1, \2, \3):")
# patch different version info accordingly.
sed -E "s:VERSION_TUPLE =.*:VERSION_TUPLE = $tuple:" -i $appdir/pysollib/settings.py
sed -E "s:(.*\(')dev(',.*):\1fc-$sversion\2:" -i $appdir/pysollib/gamedb.py
echo "VERSION = $version"

View file

@ -13,10 +13,12 @@ and through pip.
Prepare
-------
First create and enter a virtualenv and load all
Move to directory buildozer.
First create and enter a virtualenv and load the
required python modules using pip install.
$> virtualenv ENV
$> virtualenv --system-site-packages ENV
$> . ENV/bin/activate
$> pip install -r pipreq.txt

View file

@ -2,8 +2,6 @@
set -eux
tmpdir=./tmp
cardsets_dir=PySolFC-Cardsets--Minimal-2.2.0
cardsets_file=${cardsets_dir}.tar.xz
# NOTE: $1 will be set with fdroid builds only.
@ -30,11 +28,12 @@ echo "" > ${tmpdir}/data/images/cards/bottoms/trumps-only/.keep
echo '### prepare cardsets'
./mkcards
./resize4k ${tmpdir}/data/tiles
cp -a ${cardsets_dir}/* ${tmpdir}/data
cp -a cardsets/* ${tmpdir}/data
echo '### eval version'
./version.py > ${tmpdir}/version.txt
./aversion ${tmpdir} > ${tmpdir}/version.txt
echo '### end init'

View file

@ -7,6 +7,14 @@ export GRADLE_OPTS="-Xms1724m -Xmx5048m -Dorg.gradle.jvmargs='-Xms1724m -Xmx5048
echo '### run buildozer'
if [ "$1" == "test" ]
then
echo '### ... release.test'
buildozer --profile test android release
exit 0
fi
if [ "$1" ]
then
echo '### ... release'

View file

@ -20,6 +20,7 @@ source.dir = ./tmp
# (list) Source files to exclude (let empty to not exclude anything)
#source.exclude_exts = spec
source.exclude_exts = spec,gif
# (list) List of directory to exclude (let empty to not exclude anything)
#source.exclude_dirs = tests, bin, venv
@ -37,7 +38,7 @@ version.filename = %(source.dir)s/version.txt
# (list) Application requirements
# comma separated e.g. requirements = sqlite3,kivy
requirements = python3,kivy,pysol-cards,random2,configobj,attrs
requirements = python3,kivy,pysol-cards,configobj,attrs
# (str) Custom source folders for requirements
# Sets custom source for any requirements with recipes
@ -75,14 +76,14 @@ osx.kivy_version = 1.9.1
#
# (bool) Indicate if the application should be fullscreen or not
fullscreen = 1
fullscreen = 0
# (string) Presplash background color (for android toolchain)
# Supported formats are: #RRGGBB #AARRGGBB or one of the following names:
# red, blue, green, black, white, gray, cyan, magenta, yellow, lightgray,
# darkgray, grey, lightgrey, darkgrey, aqua, fuchsia, lime, maroon, navy,
# olive, purple, silver, teal.
#android.presplash_color = #FFFFFF
android.presplash_color = #101010
# (string) Presplash animation using Lottie format.
# see https://lottiefiles.com/ for examples and https://airbnb.design/lottie/
@ -102,7 +103,7 @@ android.permissions = WRITE_EXTERNAL_STORAGE, MANAGE_EXTERNAL_STORAGE
#android.features = android.hardware.usb.host
# (int) Target Android API, should be as high as possible.
android.api = 32
android.api = 34
# (int) Minimum API your APK / AAB will support.
#android.minapi = 21
@ -314,8 +315,7 @@ android.debug_artifact = apk
#p4a.branch = master
# (str) python-for-android specific commit to use, defaults to HEAD, must be within p4a.branch
#p4a.commit = HEAD
p4a.commit = v2023.02.10
p4a.commit = v2024.01.21
# (str) python-for-android git clone directory (if empty, it will be automatically cloned from github)
#p4a.source_dir =
@ -441,3 +441,7 @@ warn_on_root = 1
# Then, invoke the command line with the "demo" profile:
#
#buildozer --profile demo android debug
[app@test]
title = PySolFC.test
package.name = pysolfc.test

View file

@ -1,9 +1,18 @@
#!/bin/bash
set -eux
if [[ -z ${AAPI+x} ]]
then
exit 1
fi
python3 -m venv FINIT
source FINIT/bin/activate
pip3 install attrs
pip3 install pysol_cards
tmpdir=..
cardsets_dir=PySolFC-Cardsets--Minimal-2.2.0
cardsets_file=${cardsets_dir}.tar.xz
echo '### prepare source'
@ -16,21 +25,27 @@ echo "" > ${tmpdir}/data/images/cards/bottoms/trumps-only/.keep
echo '### prepare cardsets'
./mkcards
cp -a cardsets/* ${tmpdir}/data
cp -a ${cardsets_dir}/* ${tmpdir}/data
echo '### resize 4k images'
./resize4k ${tmpdir}/data/tiles
echo '### eval version'
./version.py > ${tmpdir}/version.txt
./aversion ${tmpdir} > ${tmpdir}/version.txt
echo '### prepare buildozer'
sed -r "s:#? ?source\.dir =.*:source.dir = ..:" -i buildozer.spec
sed -r "s:#? ?source\.exclude_dirs =.*:source.exclude_dirs = Screenshots,android,buildozer,tests:" -i buildozer.spec
sed -r "s:#? ?source\.exclude_dirs =.*:source.exclude_dirs = Screenshots,android,buildozer,contrib,tests,fastlane:" -i buildozer.spec
sed -r "s:#? ?source\.exclude_patterns =.*:source.exclude_patterns = README.*,AUTHORS.md,CONTRIBUTING.md,COPYING,MANIFEST.in,Makefile,NEWS.asciidoc,appdata.xml,pysol.py,run-tests.pl,setup.cfg,setup.py,setup_osx.py,local.properties,p4a_env_vars.txt:" -i buildozer.spec
sed -r "s:#? ?android\.skip_update =.*:android.skip_update = True:" -i buildozer.spec
sed -r "s:#? ?android\.accept_sdk_license =.*:android.accept_sdk_license = False:" -i buildozer.spec
sed -r "s:#? ?log_level =.*:log_level = 2:" -i buildozer.spec
sed -r "s:#? ?warn_on_root =.*:warn_on_root = 0:" -i buildozer.spec
echo '### end init'
deactivate
rm -rf FINIT

8
buildozer/helpers/setbuildvars Executable file
View file

@ -0,0 +1,8 @@
#!/bin/sh
VP4A='v2024.01.21'
VBUILDOZER='3ebc09e885457db4747e67a1250c2aea1ca7a046'
VCPYTHON='v3.11.5'
VCYTHON='3.0.10'
AAPI=$(cat buildozer.spec | grep -e "^android[.]api" | sed -E "s/^.*([0-9].).*/\1/")
export AAPI

View file

@ -23,6 +23,7 @@
# Starter for kivy/android using buildozer: Needs an explizitly
# named main.py as startpoint.
import os
import sys
if '--kivy' not in sys.argv:
sys.argv.append('--kivy')
@ -34,4 +35,6 @@ init()
if runmain:
from pysollib.main import main
os.environ['KIVY_NO_CONSOLELOG'] = "No"
sys.exit(main(sys.argv))

35
buildozer/minimal.txt Normal file
View file

@ -0,0 +1,35 @@
cardset-2000
cardset-blaren-7x7
cardset-crystal-mahjongg
cardset-dashavatara-ganjifa
cardset-dashavatara-ganjifa-xl
cardset-dojouji-3x3
cardset-dondorf
cardset-eternal-dragon-10x10
cardset-gnome-mahjongg-1
cardset-gpl
cardset-hanafuda-200-years
cardset-hexadeck
cardset-hofamterspiel-9x9
cardset-hokusai-6x6
cardset-knave-of-hearts-4x4
cardset-louie-mantia-hanafuda
cardset-matching
cardset-matching-xl
cardset-matrix
cardset-mid-winter-eve-8x8
cardset-mini-ishido
cardset-mughal-ganjifa
cardset-mughal-ganjifa-xl
cardset-neo
cardset-neo-hex
cardset-neo-tarock
cardset-next-matrix
cardset-oxymoron
cardset-simple-ishido
cardset-standard
cardset-tuxedo
cardset-uni-mahjongg
cardset-victoria-falls-5x5
cardset-vienna-2k
cardset-z-minimal

View file

@ -1,28 +1,52 @@
#!/bin/bash
set -eux
#set -eux
cardsets_dir=PySolFC-Cardsets--Minimal-2.2.0
cardsets_file=${cardsets_dir}.tar.xz
rm -rf cardsets
echo '### prepare cardsets'
if [ 1 ]; then
cardsets_dir=PySolFC-Cardsets
if [ ! -f ${cardsets_file} ]; then
echo '### downloading cardsets'
wget https://netix.dl.sourceforge.net/project/pysolfc/PySolFC-Cardsets/minimal/${cardsets_file}
if [ ! -d ${cardsets_dir} ]; then
echo '### downloading cardset repo'
mkdir ${cardsets_dir}
pushd ${cardsets_dir}
mkdir repo
pushd repo
git init
git remote add -t master origin https://github.com/shlomif/PySolFC-Cardsets.git
git fetch --depth 1 origin 3.0
git checkout -q FETCH_HEAD
popd
echo '### choose a minimal set'
for d in $(cat ../minimal.txt)
do
mv repo/${d} .
done
rm repo -rf
echo '### processing cardsets'
../../scripts/cardconv gif png
for i in cardset-*-png; do
rm -rf `basename $i -png`
done
popd
fi
# cp -a ${cardsets_dir} ${cardsets_dir}-orig
ln -s ${cardsets_dir} cardsets
fi
if [ ! -d ${cardsets_dir} ]; then
echo '### extracting cardsets'
tar -xf ${cardsets_file}
fi
pushd cardsets
echo '### resize big cardsets'
echo '### processing cardsets'
(
cd ${cardsets_dir}
../../scripts/cardconv gif png
for i in cardset-*-png; do
rm -rf `basename $i -png`
done
)
for i in cardset-*; do
../resizecards $i
done
popd
echo '### end cardsets'

View file

@ -1,16 +1,12 @@
appdirs==1.4.4
attrs==22.2.0
attrs==23.2.0
build==1.2.1
-e git+https://github.com/kivy/buildozer.git@3ebc09e885457db4747e67a1250c2aea1ca7a046#egg=buildozer
certifi==2024.2.2
colorama==0.4.6
configobj==5.0.8
Cython==0.29.33
Jinja2==3.1.2
Kivy==2.1.0
pep517==0.13.0
pep8==1.7.1
permutation==0.4.0
pip==23.0.1
pysol-cards==0.14.3
setuptools==67.0.0
Kivy==2.3.0
pip==24.0
pysol_cards==0.16.0
setuptools==69.1.1
toml==0.10.2
wheel==0.38.4
wheel==0.42.0

View file

@ -11,8 +11,8 @@
"type": "SINGLE",
"filters": [],
"attributes": [],
"versionCode": 102122001,
"versionName": "2.20.1",
"versionCode": 102130200,
"versionName": "3.2.0",
"outputFile": "pysolfc-release.apk"
}
],

37
buildozer/resize4k Executable file
View file

@ -0,0 +1,37 @@
#!/usr/bin/bash
location='.'
if [ $1 ]
then
location=$1
fi
pushd $location
dir='save-aspect-4k'
if [ -d $dir ]
then
pushd 'save-aspect-4k'
for f in *.jpg
do
echo $f
convert $f -resize 1920x1920 -quality 65 temp_$f
mv -f temp_$f $f
done
popd
fi
dir='stretch-4k'
if [ -d $dir ]
then
pushd 'stretch-4k'
for f in *.jpg
do
echo $f
convert $f -resize 1920x1920 -quality 65 temp_$f
mv -f temp_$f $f
done
popd
fi
popd

119
buildozer/resizecards Executable file
View file

@ -0,0 +1,119 @@
#!/usr/bin/env python3
# -*- mode: python; coding: utf-8; -*-
import sys
import os
import math
carddir = ""
filename = ""
maxw = 100
maxh = 150
# arguments:
# 1: cardset directory
# 2: maximum card width
# 3: maximum card height
if len(sys.argv) < 2:
exit (1)
if len(sys.argv) > 1:
carddir = sys.argv[1]
filename = sys.argv[1]+"/config.txt"
if len(sys.argv) > 2:
maxw = int(sys.argv[2])
if len(sys.argv) > 3:
maxh = int(sys.argv[3])
#print (filename)
#print (carddir)
#print (maxw,"x",maxh)
# 1: read the config file line by line and extract x,y, xoffset, yoffset.
lines_list = None
with open(filename, "rt") as f:
lines_list = f.readlines()
lines_list = [line.strip() for line in lines_list]
if not lines_list[0].startswith("PySol"):
exit (1)
#print (lines_list)
cardw, cardh, cardd = (int(x) for x in lines_list[2].split())
xoffs, yoffs, sxoffs, syoffs = (int(x) for x in lines_list[3].split())
#print (cardw,cardh)
#print (xoffs,yoffs)
# 2: calculate scale factor.
scale = maxw / cardw
scaleh = maxh / cardh
if scaleh < scale:
scale = scaleh
#print (scale)
if scale >= 1.0:
exit (0)
# 3: convert all images to (width)x(height) with imagemagick if needed.
def img_size(f):
stream = os.popen('identify '+f)
info = stream.read().split()
dims = info[2].split('x')
w = int(dims[0])
h = int(dims[1])
return (w,h)
cardw = int(math.floor(cardw*scale))
cardh = int(math.floor(cardh*scale))
xoffs = int(math.ceil(xoffs*scale))
yoffs = int(math.ceil(yoffs*scale))
#print (cardw,cardh)
#print (xoffs,yoffs)
first = True
effw = cardw
effh = cardh
for fn in os.listdir(path=carddir):
file = carddir+'/'+fn
fileo = carddir+'/conv-'+fn
if fn.endswith('.png') and not fn.startswith('shadow'):
cmd = "convert "+file+" -resize "+str(cardw)+"x"+str(cardh)+" "+fileo
cmd2 = "mv -f "+fileo+" "+file
#print (cmd)
os.system(cmd)
os.system(cmd2)
if first:
effw,effh = img_size(file)
#print ('eff-size:',effw,effh)
first = False
if fn.endswith('.png') and fn.startswith('shadow'):
w,h = img_size(file)
if w>h:
w = int(w*scale)
else:
h = int(h*scale)
cmd = "convert "+file+" -resize '"+str(w)+"x"+str(h)+"!' "+fileo
cmd2 = "mv -f "+fileo+" "+file
#print (cmd)
os.system(cmd)
os.system(cmd2)
# 4: rewrite the config file.
print ('rescaled by',scale,':',carddir)
cardw = effw
cardh = effh
lines_list[2] = str(cardw)+" "+str(cardh)+" "+str(cardd)
lines_list[3] = str(xoffs)+" "+str(yoffs)+" "+str(sxoffs)+" "+str(syoffs)
#print (lines_list)
with open(carddir+"/config.txt", "w") as f:
for l in lines_list:
f.write(l+"\n")

View file

@ -1,13 +0,0 @@
import re
f = open("pubspec.json")
print(f)
txt = f.read().replace('\n', '')
print(txt)
print()
mg = re.search(r'versionCode[:"\s]+(\d+)', txt)
print(mg.group(1))
ng = re.search(r'versionName[:"\s]+([\d.]+)', txt)
print(ng.group(1))

View file

@ -3,12 +3,26 @@ Cardset Customization Tutorial
:Author: Eric Rausch
:Email: <neelix570@gmail.com>
Setting up a Cardset
--------------------
The easiest way to create a cardset would be to copy an existing cardset folder of the same type in your cardsets directory. All cardsets need a number of files to work.
* An image for each card - these images should be the same format and the same size, as defined in the config.txt file (described below). These files should be named something like 01s.png for the ace of spades. The first two (or more) digits represent the rank, and the letter after represents the suit. The suits are labeled hcds in French decks or decks that use French suits (i.e. Hex A or Tarock decks), and the suits are alphabetical for other decks. The suit letter z is used for jokers or trumps.
* A shade file - shade.png, for example.
* At least one back image, as defined in the config.txt file below.
* A config.txt file, the format described below.
* A copyright file, containing copyright info.
The following optional files may also be added, but are only used under certain circumstances.
* Bottom images. A number of images for the bottoms of stacks. These are not used unless your PySol install does not support generating stack bottoms, or you enable them manually (currently only possible through editing the options.cfg file). Which bottoms are used depend on the cardset type. Each bottom has a version with a suffix of -n, indicating the negative bottom that gets used if the appropriate option is enabled.
* Shadow images. These will only be used if your PySol install does not support auto-generated shadows.
config.txt template
-------------------
....
PySolFC solitaire cardset;$A;$FMT;$B;$C;$D,$E;$F
PySolFC solitaire cardset;$A;$FMT;$B;$C;$D,$E;$F;$G;$H
<internal_name>;<cardset_name>
X Y D
XOFF YOFF SXOFF SYOFF
@ -21,7 +35,7 @@ Line 1
*$A:* The cardset version number that belongs to the number of fields divided through ";" on the first line (e.g. `.gif;1;78;8,1016` -> `$A=4`)
( *WARNING:* For Mahjongg, $A must always be 6 and the $F field must be included in the line; however, you can put `0` in `$F` if you wish, in that case. )
( *WARNING:* For Mahjongg, $A must always be 6 or 7 and the $F field must be included in the line; however, you can put `0` in `$F` if you wish, in that case. )
( *NOTE:* $D and $E are comma separated and count for one field )
@ -42,6 +56,8 @@ Cardsets Types:
* Dashavatara Ganjifa = 8
* Trumps Only = 9
* Matching = 10
* Puzzle = 11
* Ishido = 12
*$C:* The number of cards in the cardset, generally 42, 48, 52, 68, 78, 96 or 120
@ -50,6 +66,7 @@ Cardsets Types:
Cardsets Styles:
~~~~~~~~~~~~~~~~
* Abstract = 35
* Adult = 1
* Animals = 2
* Anime = 3
@ -59,14 +76,18 @@ Cardsets Styles:
* Classic Look = 7
* Collectors = 8
* Computers = 9
* Divination = 36
* Engines = 10
* Fantasy = 11
* Four Color = 37
* Ganjifa= 30
* Hanafuda = 12
* Hex A Deck = 29
* Holiday = 13
* Ishido = 34
* Mahjongg = 28
* Matching = 32
* Monochrome = 38
* Movies = 14
* Matrix = 31
* Music = 15
@ -76,6 +97,7 @@ Cardsets Styles:
* Places = 20
* Plain = 21
* Products = 22
* Puzzle = 33
* Round Cardsets = 18
* Science Fiction = 23
* Sports = 24
@ -104,6 +126,7 @@ Cardsets Origins:
* Italy = 1005
* Japan = 1016
* Netherlands = 1002
* Portugal = 1022
* Russia = 1007
* Spain = 1008
* Sweden = 1017
@ -112,6 +135,9 @@ Cardsets Origins:
*$F:* The Year the cardset was created (in the range 1000 to 2299)
*$G:* The subtype of the cardset. Usually 0 - for French type cardsets, a value of 1 is used if there are jokers. For Puzzle type cardsets, it is the number of pieces per row/column.
*$H:* Whether the cardset is a 3D Mahjongg cardset - 1 if it is, 0 if it isn't. For cardsets with a version less than 7, version 6 cardsets treat this value as 1, and older version cardsets treat it as 0.
Line 2
------
@ -120,13 +146,13 @@ Line 2
( *TIP:* You could add a number prefix (e.g. 123-cardset-name) )
`<cardset_name>`: Your cardset name as it should appear in the cardset manager
`<cardset_name>`: Your cardset name as it should appear in the cardset manager. Note that a cardset name of more than 30 characters will be truncated.
Line 3
------
* *X:* The cards width (the card image width)
* *Y:* The cards height (the card image height)
* *X:* The cards' width (the card image width)
* *Y:* The cards' height (the card image height)
* *D:* The color depth (mostly 8)
Line 4

View file

@ -18,7 +18,6 @@ builtins.n_ = lambda x: x
import pysollib.games # noqa: E402,F402,I100,I202
import pysollib.games.mahjongg # noqa: E402,F402
import pysollib.games.special # noqa: E402,F401,F402
import pysollib.games.ultra # noqa: E402,F401,F402
try:
os.mkdir('html')

View file

@ -6,7 +6,7 @@ PIP="${PKGTREE}/env/bin/pip"
PYPROG="${PKGTREE}/env/bin/python"
VERSION="$(env PYTHONPATH=`pwd` "$PYPROG" -c 'from pysollib.settings import VERSION ; print(VERSION)')"
XZBALL="dist/PySolFC-${VERSION}.tar.xz"
reqs=(pillow pygame random2 six)
reqs=(pillow pygame six)
make dist

Binary file not shown.

After

Width:  |  Height:  |  Size: 663 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 592 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 592 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 676 B

After

Width:  |  Height:  |  Size: 669 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 829 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 903 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 989 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 226 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 460 B

After

Width:  |  Height:  |  Size: 437 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 574 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 567 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 634 B

After

Width:  |  Height:  |  Size: 630 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 807 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 633 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 724 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 295 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 412 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 270 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 398 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 620 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 619 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 155 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 312 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 215 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 597 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 256 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 280 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 965 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 965 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

After

Width:  |  Height:  |  Size: 1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

After

Width:  |  Height:  |  Size: 1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1,006 B

After

Width:  |  Height:  |  Size: 579 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1,006 B

After

Width:  |  Height:  |  Size: 579 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 725 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 725 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1 KiB

After

Width:  |  Height:  |  Size: 578 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1 KiB

After

Width:  |  Height:  |  Size: 578 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 722 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 722 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1 KiB

After

Width:  |  Height:  |  Size: 588 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1 KiB

After

Width:  |  Height:  |  Size: 588 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 674 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 674 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 568 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 568 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1 KiB

After

Width:  |  Height:  |  Size: 540 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1 KiB

After

Width:  |  Height:  |  Size: 540 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 807 B

Some files were not shown because too many files have changed in this diff Show more