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

Compare commits

...

160 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
1375 changed files with 5230 additions and 1369 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,8 +32,8 @@ 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-3.0.0.tar.xz/download -FileName cardsets.tar.xz
@ -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,7 +23,7 @@ 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
@ -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

1
.gitignore vendored
View file

@ -10,7 +10,6 @@
/html
/html-src/html/*
/images
/locale/*
/po/de.po
/po/fr.po
/po/it.po

View file

@ -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,8 +11,8 @@ 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)

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:

View file

@ -1,5 +1,18 @@
[[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

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:

View file

@ -9,7 +9,7 @@ else
fi
# current android version mumber.
version="2.26.0"
version="3.2.0"
sversion=$(echo $version | sed -E "s:(.*)\..*:\1:")
tuple=$(echo $version | sed -E "s:(.*)\.(.*)\.(.*):(\1, \2, \3):")

View file

@ -15,10 +15,10 @@ Prepare
Move to directory buildozer.
First create and enter a virtualenv and load all
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

@ -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

@ -38,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
@ -103,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
@ -315,7 +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 = v2023.09.16
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,6 +1,17 @@
#!/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=..
echo '### prepare source'
@ -27,11 +38,14 @@ echo '### eval version'
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,fastlane:" -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

@ -32,4 +32,4 @@ cardset-tuxedo
cardset-uni-mahjongg
cardset-victoria-falls-5x5
cardset-vienna-2k
cardset-z_minimal
cardset-z-minimal

View file

@ -16,7 +16,7 @@ if [ 1 ]; then
pushd repo
git init
git remote add -t master origin https://github.com/shlomif/PySolFC-Cardsets.git
git fetch --depth 1 origin 9b63a583dc3e770fa9bf8f2378c37a064aa4969c
git fetch --depth 1 origin 3.0
git checkout -q FETCH_HEAD
popd

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.2.1
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,10 +11,10 @@
"type": "SINGLE",
"filters": [],
"attributes": [],
"versionCode": 102130000,
"versionName": "3.0.0",
"versionCode": 102130200,
"versionName": "3.2.0",
"outputFile": "pysolfc-release.apk"
}
],
"elementType": "File"
}
}

View file

@ -3,6 +3,20 @@ 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
-------------------

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.

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.

After

Width:  |  Height:  |  Size: 574 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 567 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: 216 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 217 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 207 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 212 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 213 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 222 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 213 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 205 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 220 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 221 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 221 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 223 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 208 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 214 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 218 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 226 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 213 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 212 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 227 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 224 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 216 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 218 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 202 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 214 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 219 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 222 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 214 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 211 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 228 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 223 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 216 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 220 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 201 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 212 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 214 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 219 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 210 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 207 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 223 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 221 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 213 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 218 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 201 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 211 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 213 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 216 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 210 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 208 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 221 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 218 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 220 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 219 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 203 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 213 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 212 B

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