Compare commits
160 commits
pysolfc-3.
...
master
Author | SHA1 | Date | |
---|---|---|---|
|
bdd3093a2b | ||
|
c4a62baf79 | ||
|
b1370fce08 | ||
|
7b85049f7c | ||
|
afc74a86f5 | ||
|
50e003e256 | ||
|
78de569074 | ||
|
a79c81109b | ||
|
c14be7b73e | ||
|
69c1440b2b | ||
|
72386af5e6 | ||
|
a57f1eae38 | ||
|
6f0c6e00e1 | ||
|
512d3ea466 | ||
|
e7e9f0ff87 | ||
|
9773eee2d6 | ||
|
015e860557 | ||
|
04b7eacfcb | ||
|
52e2ffc58f | ||
|
81150b4681 | ||
|
f799093e35 | ||
|
12118d12ed | ||
|
fd4a4e1378 | ||
|
63a63fdfd3 | ||
|
ff9cc5e98c | ||
|
cadf8b2084 | ||
|
f4dec3ed16 | ||
|
5c8d5c26b4 | ||
|
cb0dd1ec2f | ||
|
dc5ab96c80 | ||
|
54a978b4e2 | ||
|
5b9f64a7eb | ||
|
21c2780e8e | ||
|
ed2da8cd46 | ||
|
054c0f0368 | ||
|
487d1c52f3 | ||
|
6852bb40ff | ||
|
6006e0f4c0 | ||
|
68138c7284 | ||
|
96a06108af | ||
|
ac03fa741d | ||
|
7cac54b714 | ||
|
b189c4b3b0 | ||
|
4566cb2fc5 | ||
|
40929f913e | ||
|
ef69c03a38 | ||
|
0cdd06ddad | ||
|
a6827ee7e2 | ||
|
5d1ed621e3 | ||
|
4c031b9686 | ||
|
2c69371265 | ||
|
7940e62285 | ||
|
9cd7a2c5fe | ||
|
5005ef6796 | ||
|
cafdafe047 | ||
|
911f83d249 | ||
|
abb9605dd4 | ||
|
180d3d57df | ||
|
5d9b462304 | ||
|
d18c857a76 | ||
|
d5d426fe91 | ||
|
2e6cb6ad35 | ||
|
c9c315818d | ||
|
4471a8a623 | ||
|
289df06b95 | ||
|
f844c0eae2 | ||
|
a5e0c96450 | ||
|
d36c19b158 | ||
|
61eb1f0361 | ||
|
86d92c2636 | ||
|
5392190c35 | ||
|
cb2252b74e | ||
|
d7d9bb3ea6 | ||
|
8cbac328a9 | ||
|
b6454ce541 | ||
|
0135e386c2 | ||
|
70909f6469 | ||
|
673cb847bc | ||
|
91b1ba9be9 | ||
|
2bfc6bdd3d | ||
|
552585f143 | ||
|
880fb11979 | ||
|
934d82b5f4 | ||
|
87a33b72b1 | ||
|
b7569e79c2 | ||
|
ba202f67c1 | ||
|
d0ca03a49a | ||
|
f448248741 | ||
|
eb3bb5dad8 | ||
|
49e48bada4 | ||
|
dcfac1032d | ||
|
ad39c3aa22 | ||
|
98c9202e34 | ||
|
1fad63af73 | ||
|
f360600fcd | ||
|
b3cdb7e4b8 | ||
|
dab3eea6cb | ||
|
8c58941d23 | ||
|
3778ab2c1f | ||
|
56489cb7bc | ||
|
910f927727 | ||
|
cc32c0373e | ||
|
b77989cbdb | ||
|
41c17c74f3 | ||
|
df8d05e0c5 | ||
|
66995aedaf | ||
|
fbc0817a1e | ||
|
dfd3b063dd | ||
|
83289d5432 | ||
|
4478212d20 | ||
|
dd16750d5f | ||
|
68d6b64fa2 | ||
|
679c9a74c1 | ||
|
4a3d6e7383 | ||
|
148f189a74 | ||
|
1149d4fd4f | ||
|
57adebfcdc | ||
|
83baa54164 | ||
|
d7c145ac18 | ||
|
b74dcde44a | ||
|
bd2edf2f19 | ||
|
792fbca78a | ||
|
a0ea7a3870 | ||
|
166025313b | ||
|
18f8e3e32b | ||
|
fd230df4f2 | ||
|
d15ff23d49 | ||
|
23f41d9553 | ||
|
77f1125156 | ||
|
b26821048c | ||
|
3a356670bb | ||
|
885b2925ab | ||
|
b92debbbfd | ||
|
13c611949d | ||
|
447dc4afea | ||
|
69394fa3b9 | ||
|
180f3fa225 | ||
|
85d455d4f7 | ||
|
6a32b1f2fa | ||
|
ea0ce6f6f3 | ||
|
a42b76d263 | ||
|
3cbcc8d214 | ||
|
0cace3a07b | ||
|
9274e47de6 | ||
|
b3c8390fac | ||
|
b62630ab5f | ||
|
58e2eb89c9 | ||
|
764fb5207e | ||
|
ceee32e212 | ||
|
b951d86579 | ||
|
a189d42328 | ||
|
abd95b8887 | ||
|
90ffaeb2d1 | ||
|
7ef3b1d359 | ||
|
b64ef10374 | ||
|
66d2eaba5f | ||
|
efdb843179 | ||
|
a14eef2b60 | ||
|
69b98c9982 | ||
|
34292e2743 |
|
@ -1,16 +1,16 @@
|
||||||
---
|
---
|
||||||
image: Visual Studio 2019
|
image: Visual Studio 2022
|
||||||
environment:
|
environment:
|
||||||
matrix:
|
matrix:
|
||||||
- PYTHON: "C:\\Python311"
|
- PYTHON: "C:\\Python313"
|
||||||
# Shamelessly taken from https://github.com/plicease/Dist-Zilla-PluginBundle-Author-Plicease/blob/master/.appveyor.yml
|
# Shamelessly taken from https://github.com/plicease/Dist-Zilla-PluginBundle-Author-Plicease/blob/master/.appveyor.yml
|
||||||
# Thanks!
|
# Thanks!
|
||||||
install:
|
install:
|
||||||
# - choco install strawberryperl
|
# - choco install strawberryperl
|
||||||
- copy %PYTHON%\python.exe %PYTHON%\python3.exe
|
- 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%
|
- 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
|
- python3 -mpip install Pillow attrs configobj flake8 flake8-import-order
|
||||||
pycotap pygame pyinstaller pysol-cards random2 setuptools six
|
pycotap pygame pyinstaller pysol-cards setuptools six
|
||||||
ttkthemes
|
ttkthemes
|
||||||
- perl -v
|
- perl -v
|
||||||
- copy C:\msys64\mingw64\bin\mingw32-make.exe C:\msys64\mingw64\bin\make.exe
|
- copy C:\msys64\mingw64\bin\mingw32-make.exe C:\msys64\mingw64\bin\make.exe
|
||||||
|
@ -32,8 +32,8 @@ test_script:
|
||||||
- gmake pretest
|
- gmake pretest
|
||||||
- perl run-tests.pl
|
- perl run-tests.pl
|
||||||
- gmake rules
|
- gmake rules
|
||||||
- gmake pot
|
#- gmake pot
|
||||||
- gmake mo
|
#- gmake mo
|
||||||
- pyinstaller pysol.py --windowed --icon=data\pysol.ico
|
- pyinstaller pysol.py --windowed --icon=data\pysol.ico
|
||||||
- python3 setup.py install_data -d dist\pysol
|
- 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
|
- 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:
|
# For reproducible builds:
|
||||||
# See: https://reproducible-builds.org/ .
|
# See: https://reproducible-builds.org/ .
|
||||||
- SET FC_SOLVE_VER=5.20.0
|
- 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
|
- 7z x fc-solve.zip
|
||||||
- move fcs-pysol dist\pysol\freecell-solver
|
- move fcs-pysol dist\pysol\freecell-solver
|
||||||
- 7z a -r pysol_win_dist.7z dist\pysol\
|
- 7z a -r pysol_win_dist.7z dist\pysol\
|
||||||
|
|
2
.github/workflows/ci.yml
vendored
|
@ -23,7 +23,7 @@ jobs:
|
||||||
run: |
|
run: |
|
||||||
python -m pip install --upgrade pip
|
python -m pip install --upgrade pip
|
||||||
python -m pip install flake8 flake8-import-order \
|
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
|
if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
|
||||||
- name: Lint with flake8
|
- name: Lint with flake8
|
||||||
run: |
|
run: |
|
||||||
|
|
8
.github/workflows/macos-package.yml
vendored
|
@ -7,7 +7,7 @@ on:
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
build:
|
||||||
runs-on: macos-12
|
runs-on: macos-14
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
|
@ -23,7 +23,7 @@ jobs:
|
||||||
run: |
|
run: |
|
||||||
python3 -m pip install --upgrade pip
|
python3 -m pip install --upgrade pip
|
||||||
python3 -m pip install --no-binary=Pillow \
|
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
|
if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
|
||||||
brew install create-dmg
|
brew install create-dmg
|
||||||
- name: Get cardsets
|
- name: Get cardsets
|
||||||
|
@ -49,12 +49,12 @@ jobs:
|
||||||
--skip-jenkins
|
--skip-jenkins
|
||||||
PySolFC.dmg dist
|
PySolFC.dmg dist
|
||||||
- name: Upload zipped app
|
- name: Upload zipped app
|
||||||
uses: actions/upload-artifact@v2
|
uses: actions/upload-artifact@v4
|
||||||
with:
|
with:
|
||||||
name: pysolfc-app
|
name: pysolfc-app
|
||||||
path: PySolFC-app.zip
|
path: PySolFC-app.zip
|
||||||
- name: Upload dmg
|
- name: Upload dmg
|
||||||
uses: actions/upload-artifact@v2
|
uses: actions/upload-artifact@v4
|
||||||
with:
|
with:
|
||||||
name: pysolfc-dmg
|
name: pysolfc-dmg
|
||||||
path: PySolFC.dmg
|
path: PySolFC.dmg
|
||||||
|
|
1
.gitignore
vendored
|
@ -10,7 +10,6 @@
|
||||||
/html
|
/html
|
||||||
/html-src/html/*
|
/html-src/html/*
|
||||||
/images
|
/images
|
||||||
/locale/*
|
|
||||||
/po/de.po
|
/po/de.po
|
||||||
/po/fr.po
|
/po/fr.po
|
||||||
/po/it.po
|
/po/it.po
|
||||||
|
|
|
@ -46,7 +46,7 @@ install:
|
||||||
# Tests are failing for them sometimes
|
# Tests are failing for them sometimes
|
||||||
- cpanm --notest Capture::Tiny IPC::System::Simple
|
- cpanm --notest Capture::Tiny IPC::System::Simple
|
||||||
- cpanm Code::TidyAll::Plugin::Flake8 Perl::Tidy Test::Code::TidyAll Test::Differences Test::TrailingSpace
|
- 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
|
- 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 wheel
|
||||||
- sudo -H pip3 install --upgrade $PY_MODS flake8 flake8-import-order
|
- sudo -H pip3 install --upgrade $PY_MODS flake8 flake8-import-order
|
||||||
|
|
|
@ -11,8 +11,8 @@ Main Authors
|
||||||
* macOS package maintainer
|
* macOS package maintainer
|
||||||
* [Shlomi Fish](https://www.shlomifish.org/)
|
* [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).
|
* Continued PySolFC maintenance, port to python 3, test suite (Note: he places all his changes under the Expat licence).
|
||||||
* https://github.com/lufebe16
|
* [lufebe16](https://github.com/lufebe16)
|
||||||
* Added the Kivy toolkit
|
* Added the Kivy toolkit and all the Android app related code and build procedures.
|
||||||
* [Roderik Ploszek](https://github.com/Programator2)
|
* [Roderik Ploszek](https://github.com/Programator2)
|
||||||
* Fixes and enhancements
|
* Fixes and enhancements
|
||||||
* [Joe R.](https://github.com/joeraz)
|
* [Joe R.](https://github.com/joeraz)
|
||||||
|
|
|
@ -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.
|
- 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.
|
- 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
|
# How you can contribute
|
||||||
|
|
||||||
|
@ -32,7 +32,7 @@ custom variants. It lives in the Edit menu.
|
||||||
|
|
||||||
Otherwise, the games' sources live under
|
Otherwise, the games' sources live under
|
||||||
[the pysollib/games/](pysollib/games/) directory in the repository, and are
|
[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).
|
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:
|
In addition to adding the game's source code, be sure to add the game's metadata. At minimum, you should:
|
||||||
|
|
|
@ -1,5 +1,18 @@
|
||||||
[[news]]
|
[[news]]
|
||||||
=== 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
|
* _31 March, 2024:_ There is a new stable release
|
||||||
https://sourceforge.net/projects/pysolfc/files/PySolFC/PySolFC-3.0.0/[PySolFC
|
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
|
v3.0.0] - the biggest release in over 15 years. Additionally, there is a new Cardsets release
|
||||||
|
|
13
README.md
|
@ -31,7 +31,7 @@ can be implemented.
|
||||||
|
|
||||||
## Requirements.
|
## Requirements.
|
||||||
|
|
||||||
- Python (2.7 or 3.x)
|
- Python (3.7 or later)
|
||||||
- Tkinter (Tcl/Tk 8.4 or later)
|
- Tkinter (Tcl/Tk 8.4 or later)
|
||||||
|
|
||||||
- For sound support (optional)
|
- For sound support (optional)
|
||||||
|
@ -97,10 +97,10 @@ cd PySolFC
|
||||||
gmake test
|
gmake test
|
||||||
gmake rules
|
gmake rules
|
||||||
ln -s data/images images
|
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
|
mkdir -p ~/.PySolFC
|
||||||
rmdir ~/.PySolFC/cardsets
|
rmdir ~/.PySolFC/cardsets
|
||||||
ln -s "`pwd`/PySolFC-Cardsets-2.0" ~/.PySolFC/cardsets
|
ln -s "`pwd`/PySolFC-Cardsets-3.0" ~/.PySolFC/cardsets
|
||||||
python pysol.py
|
python pysol.py
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -118,21 +118,18 @@ per the instructions above.
|
||||||
At the moment, this only works on POSIX (Linux, FreeBSD and similar) systems.
|
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.
|
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:
|
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
|
pip install pysol-cards
|
||||||
```
|
```
|
||||||
|
|
||||||
You may want to use your OS distribution package system instead, for example:
|
You may want to use your OS distribution package system instead, for example:
|
||||||
|
|
||||||
```
|
```
|
||||||
sudo apt-get install python-six
|
sudo apt-get install python3-pysol-cards
|
||||||
sudo apt-get install python-random2
|
|
||||||
```
|
```
|
||||||
|
|
||||||
For Pillow compilation, libjpeg headers and libraries need to be available:
|
For Pillow compilation, libjpeg headers and libraries need to be available:
|
||||||
|
|
|
@ -9,7 +9,7 @@ else
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# current android version mumber.
|
# current android version mumber.
|
||||||
version="2.26.0"
|
version="3.2.0"
|
||||||
sversion=$(echo $version | sed -E "s:(.*)\..*:\1:")
|
sversion=$(echo $version | sed -E "s:(.*)\..*:\1:")
|
||||||
tuple=$(echo $version | sed -E "s:(.*)\.(.*)\.(.*):(\1, \2, \3):")
|
tuple=$(echo $version | sed -E "s:(.*)\.(.*)\.(.*):(\1, \2, \3):")
|
||||||
|
|
||||||
|
|
|
@ -15,10 +15,10 @@ Prepare
|
||||||
|
|
||||||
Move to directory buildozer.
|
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.
|
required python modules using pip install.
|
||||||
|
|
||||||
$> virtualenv ENV
|
$> virtualenv --system-site-packages ENV
|
||||||
$> . ENV/bin/activate
|
$> . ENV/bin/activate
|
||||||
$> pip install -r pipreq.txt
|
$> pip install -r pipreq.txt
|
||||||
|
|
||||||
|
|
|
@ -7,6 +7,14 @@ export GRADLE_OPTS="-Xms1724m -Xmx5048m -Dorg.gradle.jvmargs='-Xms1724m -Xmx5048
|
||||||
|
|
||||||
echo '### run buildozer'
|
echo '### run buildozer'
|
||||||
|
|
||||||
|
|
||||||
|
if [ "$1" == "test" ]
|
||||||
|
then
|
||||||
|
echo '### ... release.test'
|
||||||
|
buildozer --profile test android release
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
if [ "$1" ]
|
if [ "$1" ]
|
||||||
then
|
then
|
||||||
echo '### ... release'
|
echo '### ... release'
|
||||||
|
|
|
@ -38,7 +38,7 @@ version.filename = %(source.dir)s/version.txt
|
||||||
|
|
||||||
# (list) Application requirements
|
# (list) Application requirements
|
||||||
# comma separated e.g. requirements = sqlite3,kivy
|
# 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
|
# (str) Custom source folders for requirements
|
||||||
# Sets custom source for any requirements with recipes
|
# 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
|
#android.features = android.hardware.usb.host
|
||||||
|
|
||||||
# (int) Target Android API, should be as high as possible.
|
# (int) Target Android API, should be as high as possible.
|
||||||
android.api = 32
|
android.api = 34
|
||||||
|
|
||||||
# (int) Minimum API your APK / AAB will support.
|
# (int) Minimum API your APK / AAB will support.
|
||||||
#android.minapi = 21
|
#android.minapi = 21
|
||||||
|
@ -315,7 +315,7 @@ android.debug_artifact = apk
|
||||||
#p4a.branch = master
|
#p4a.branch = master
|
||||||
|
|
||||||
# (str) python-for-android specific commit to use, defaults to HEAD, must be within p4a.branch
|
# (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)
|
# (str) python-for-android git clone directory (if empty, it will be automatically cloned from github)
|
||||||
#p4a.source_dir =
|
#p4a.source_dir =
|
||||||
|
@ -441,3 +441,7 @@ warn_on_root = 1
|
||||||
# Then, invoke the command line with the "demo" profile:
|
# Then, invoke the command line with the "demo" profile:
|
||||||
#
|
#
|
||||||
#buildozer --profile demo android debug
|
#buildozer --profile demo android debug
|
||||||
|
|
||||||
|
[app@test]
|
||||||
|
title = PySolFC.test
|
||||||
|
package.name = pysolfc.test
|
||||||
|
|
|
@ -1,6 +1,17 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
set -eux
|
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=..
|
tmpdir=..
|
||||||
|
|
||||||
echo '### prepare source'
|
echo '### prepare source'
|
||||||
|
@ -27,11 +38,14 @@ echo '### eval version'
|
||||||
echo '### prepare buildozer'
|
echo '### prepare buildozer'
|
||||||
|
|
||||||
sed -r "s:#? ?source\.dir =.*:source.dir = ..:" -i buildozer.spec
|
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:#? ?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\.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:#? ?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:#? ?log_level =.*:log_level = 2:" -i buildozer.spec
|
||||||
|
sed -r "s:#? ?warn_on_root =.*:warn_on_root = 0:" -i buildozer.spec
|
||||||
|
|
||||||
echo '### end init'
|
echo '### end init'
|
||||||
|
|
||||||
|
deactivate
|
||||||
|
rm -rf FINIT
|
||||||
|
|
8
buildozer/helpers/setbuildvars
Executable 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
|
|
@ -32,4 +32,4 @@ cardset-tuxedo
|
||||||
cardset-uni-mahjongg
|
cardset-uni-mahjongg
|
||||||
cardset-victoria-falls-5x5
|
cardset-victoria-falls-5x5
|
||||||
cardset-vienna-2k
|
cardset-vienna-2k
|
||||||
cardset-z_minimal
|
cardset-z-minimal
|
||||||
|
|
|
@ -16,7 +16,7 @@ if [ 1 ]; then
|
||||||
pushd repo
|
pushd repo
|
||||||
git init
|
git init
|
||||||
git remote add -t master origin https://github.com/shlomif/PySolFC-Cardsets.git
|
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
|
git checkout -q FETCH_HEAD
|
||||||
popd
|
popd
|
||||||
|
|
||||||
|
|
|
@ -1,16 +1,12 @@
|
||||||
appdirs==1.4.4
|
attrs==23.2.0
|
||||||
attrs==22.2.0
|
build==1.2.1
|
||||||
-e git+https://github.com/kivy/buildozer.git@3ebc09e885457db4747e67a1250c2aea1ca7a046#egg=buildozer
|
-e git+https://github.com/kivy/buildozer.git@3ebc09e885457db4747e67a1250c2aea1ca7a046#egg=buildozer
|
||||||
|
certifi==2024.2.2
|
||||||
colorama==0.4.6
|
colorama==0.4.6
|
||||||
configobj==5.0.8
|
configobj==5.0.8
|
||||||
Cython==0.29.33
|
Kivy==2.3.0
|
||||||
Jinja2==3.1.2
|
pip==24.0
|
||||||
Kivy==2.2.1
|
pysol_cards==0.16.0
|
||||||
pep517==0.13.0
|
setuptools==69.1.1
|
||||||
pep8==1.7.1
|
|
||||||
permutation==0.4.0
|
|
||||||
pip==23.0.1
|
|
||||||
pysol-cards==0.14.3
|
|
||||||
setuptools==67.0.0
|
|
||||||
toml==0.10.2
|
toml==0.10.2
|
||||||
wheel==0.38.4
|
wheel==0.42.0
|
||||||
|
|
|
@ -11,10 +11,10 @@
|
||||||
"type": "SINGLE",
|
"type": "SINGLE",
|
||||||
"filters": [],
|
"filters": [],
|
||||||
"attributes": [],
|
"attributes": [],
|
||||||
"versionCode": 102130000,
|
"versionCode": 102130200,
|
||||||
"versionName": "3.0.0",
|
"versionName": "3.2.0",
|
||||||
"outputFile": "pysolfc-release.apk"
|
"outputFile": "pysolfc-release.apk"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"elementType": "File"
|
"elementType": "File"
|
||||||
}
|
}
|
|
@ -3,6 +3,20 @@ Cardset Customization Tutorial
|
||||||
:Author: Eric Rausch
|
:Author: Eric Rausch
|
||||||
:Email: <neelix570@gmail.com>
|
: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
|
config.txt template
|
||||||
-------------------
|
-------------------
|
||||||
|
|
|
@ -6,7 +6,7 @@ PIP="${PKGTREE}/env/bin/pip"
|
||||||
PYPROG="${PKGTREE}/env/bin/python"
|
PYPROG="${PKGTREE}/env/bin/python"
|
||||||
VERSION="$(env PYTHONPATH=`pwd` "$PYPROG" -c 'from pysollib.settings import VERSION ; print(VERSION)')"
|
VERSION="$(env PYTHONPATH=`pwd` "$PYPROG" -c 'from pysollib.settings import VERSION ; print(VERSION)')"
|
||||||
XZBALL="dist/PySolFC-${VERSION}.tar.xz"
|
XZBALL="dist/PySolFC-${VERSION}.tar.xz"
|
||||||
reqs=(pillow pygame random2 six)
|
reqs=(pillow pygame six)
|
||||||
|
|
||||||
make dist
|
make dist
|
||||||
|
|
||||||
|
|
BIN
data/images/buttons/bluecurve/apply.png
Normal file
After Width: | Height: | Size: 663 B |
BIN
data/images/buttons/bluecurve/back.png
Normal file
After Width: | Height: | Size: 592 B |
Before Width: | Height: | Size: 592 B |
BIN
data/images/buttons/bluecurve/clear.png
Normal file
After Width: | Height: | Size: 829 B |
BIN
data/images/buttons/bluecurve/color.png
Normal file
After Width: | Height: | Size: 903 B |
BIN
data/images/buttons/bluecurve/help.png
Normal file
After Width: | Height: | Size: 989 B |
Before Width: | Height: | Size: 226 B |
BIN
data/images/buttons/bluecurve/next.png
Normal file
After Width: | Height: | Size: 574 B |
Before Width: | Height: | Size: 567 B |
BIN
data/images/buttons/bluecurve/reset.png
Normal file
After Width: | Height: | Size: 807 B |
BIN
data/images/buttons/bluecurve/save.png
Normal file
After Width: | Height: | Size: 633 B |
BIN
data/images/buttons/bluecurve/statistics.png
Normal file
After Width: | Height: | Size: 724 B |
BIN
data/images/buttons/remix/apply.png
Normal file
After Width: | Height: | Size: 295 B |
BIN
data/images/buttons/remix/back.png
Normal file
After Width: | Height: | Size: 412 B |
BIN
data/images/buttons/remix/cancel.png
Normal file
After Width: | Height: | Size: 270 B |
BIN
data/images/buttons/remix/clear.png
Normal file
After Width: | Height: | Size: 398 B |
BIN
data/images/buttons/remix/color.png
Normal file
After Width: | Height: | Size: 620 B |
BIN
data/images/buttons/remix/help.png
Normal file
After Width: | Height: | Size: 619 B |
BIN
data/images/buttons/remix/new.png
Normal file
After Width: | Height: | Size: 155 B |
BIN
data/images/buttons/remix/next.png
Normal file
After Width: | Height: | Size: 312 B |
BIN
data/images/buttons/remix/ok.png
Normal file
After Width: | Height: | Size: 215 B |
BIN
data/images/buttons/remix/reset.png
Normal file
After Width: | Height: | Size: 597 B |
BIN
data/images/buttons/remix/save.png
Normal file
After Width: | Height: | Size: 256 B |
BIN
data/images/buttons/remix/statistics.png
Normal file
After Width: | Height: | Size: 280 B |
Before Width: | Height: | Size: 216 B |
Before Width: | Height: | Size: 217 B |
Before Width: | Height: | Size: 207 B |
Before Width: | Height: | Size: 212 B |
Before Width: | Height: | Size: 213 B |
Before Width: | Height: | Size: 222 B |
Before Width: | Height: | Size: 213 B |
Before Width: | Height: | Size: 205 B |
Before Width: | Height: | Size: 220 B |
Before Width: | Height: | Size: 221 B |
Before Width: | Height: | Size: 221 B |
Before Width: | Height: | Size: 223 B |
Before Width: | Height: | Size: 208 B |
Before Width: | Height: | Size: 214 B |
Before Width: | Height: | Size: 218 B |
Before Width: | Height: | Size: 226 B |
Before Width: | Height: | Size: 213 B |
Before Width: | Height: | Size: 212 B |
Before Width: | Height: | Size: 227 B |
Before Width: | Height: | Size: 224 B |
Before Width: | Height: | Size: 216 B |
Before Width: | Height: | Size: 218 B |
Before Width: | Height: | Size: 202 B |
Before Width: | Height: | Size: 214 B |
Before Width: | Height: | Size: 219 B |
Before Width: | Height: | Size: 222 B |
Before Width: | Height: | Size: 214 B |
Before Width: | Height: | Size: 211 B |
Before Width: | Height: | Size: 228 B |
Before Width: | Height: | Size: 223 B |
Before Width: | Height: | Size: 216 B |
Before Width: | Height: | Size: 220 B |
Before Width: | Height: | Size: 201 B |
Before Width: | Height: | Size: 212 B |
Before Width: | Height: | Size: 214 B |
Before Width: | Height: | Size: 219 B |
Before Width: | Height: | Size: 210 B |
Before Width: | Height: | Size: 207 B |
Before Width: | Height: | Size: 223 B |
Before Width: | Height: | Size: 221 B |
Before Width: | Height: | Size: 213 B |
Before Width: | Height: | Size: 218 B |
Before Width: | Height: | Size: 201 B |
Before Width: | Height: | Size: 211 B |
Before Width: | Height: | Size: 213 B |
Before Width: | Height: | Size: 216 B |
Before Width: | Height: | Size: 210 B |
Before Width: | Height: | Size: 208 B |
Before Width: | Height: | Size: 221 B |
Before Width: | Height: | Size: 218 B |
Before Width: | Height: | Size: 220 B |
Before Width: | Height: | Size: 219 B |
Before Width: | Height: | Size: 203 B |
Before Width: | Height: | Size: 213 B |
Before Width: | Height: | Size: 212 B |