%global _empty_manifest_terminate_build 0 Name: python-py2048base Version: 0.48 Release: 1 Summary: Python clone of the famous 2048 game. License: GPL URL: https://github.com/dasld/py2048base Source0: https://mirrors.aliyun.com/pypi/web/packages/bc/a3/2ee7cd0a65aaa179da7f997f7c9df6c0a6269f7f794efd68ec55cac85c0f/py2048base-0.48.tar.gz BuildArch: noarch Requires: python3-appdirs Requires: python3-pytest %description The backend takes input (in the form of a `py2048.Directions` object), processes it, and waits for the next input. This loops until the player exits, or the player wins for the first time in this session, or the player runs out of valid movements. It's a pure-Python implementation of the original game logic: it makes equal numbers merge into their sum, "moving" from one tile into another, and so on. The backend deals only with plain Python data, such as `int` and `dict`; it is up to each frontend to actually collect the input and display the updated game state as a (hopefully) pretty interface. To write such frontend, subclass `py2048.basefrontend.Base2048Frontend` and override the following methods: * `choose_direction` * `on_player_quit` * `on_player_victory` * `on_player_overvictory` * `on_player_loss` `choose_direction` must return exactly one `py2048.Directions` object. If writing a graphical frontend (a GUI), you'll probably want to create a "worker" thread that runs the backend's loop and waits for a condition when it reaches the `choose_direction` call. The main thread will then be responsible for storing user input somewhere accessible by the worker thread and "waking it up". The other overriden methods shouldn't return anything. `player_quit` is called when the player exits the game before winning or losing. An "overvictory" is what happens when the grid "jams" (runs out of valid movements) but the player had already won (had already reached the target goal number). %package -n python3-py2048base Summary: Python clone of the famous 2048 game. Provides: python-py2048base BuildRequires: python3-devel BuildRequires: python3-setuptools BuildRequires: python3-pip %description -n python3-py2048base The backend takes input (in the form of a `py2048.Directions` object), processes it, and waits for the next input. This loops until the player exits, or the player wins for the first time in this session, or the player runs out of valid movements. It's a pure-Python implementation of the original game logic: it makes equal numbers merge into their sum, "moving" from one tile into another, and so on. The backend deals only with plain Python data, such as `int` and `dict`; it is up to each frontend to actually collect the input and display the updated game state as a (hopefully) pretty interface. To write such frontend, subclass `py2048.basefrontend.Base2048Frontend` and override the following methods: * `choose_direction` * `on_player_quit` * `on_player_victory` * `on_player_overvictory` * `on_player_loss` `choose_direction` must return exactly one `py2048.Directions` object. If writing a graphical frontend (a GUI), you'll probably want to create a "worker" thread that runs the backend's loop and waits for a condition when it reaches the `choose_direction` call. The main thread will then be responsible for storing user input somewhere accessible by the worker thread and "waking it up". The other overriden methods shouldn't return anything. `player_quit` is called when the player exits the game before winning or losing. An "overvictory" is what happens when the grid "jams" (runs out of valid movements) but the player had already won (had already reached the target goal number). %package help Summary: Development documents and examples for py2048base Provides: python3-py2048base-doc %description help The backend takes input (in the form of a `py2048.Directions` object), processes it, and waits for the next input. This loops until the player exits, or the player wins for the first time in this session, or the player runs out of valid movements. It's a pure-Python implementation of the original game logic: it makes equal numbers merge into their sum, "moving" from one tile into another, and so on. The backend deals only with plain Python data, such as `int` and `dict`; it is up to each frontend to actually collect the input and display the updated game state as a (hopefully) pretty interface. To write such frontend, subclass `py2048.basefrontend.Base2048Frontend` and override the following methods: * `choose_direction` * `on_player_quit` * `on_player_victory` * `on_player_overvictory` * `on_player_loss` `choose_direction` must return exactly one `py2048.Directions` object. If writing a graphical frontend (a GUI), you'll probably want to create a "worker" thread that runs the backend's loop and waits for a condition when it reaches the `choose_direction` call. The main thread will then be responsible for storing user input somewhere accessible by the worker thread and "waking it up". The other overriden methods shouldn't return anything. `player_quit` is called when the player exits the game before winning or losing. An "overvictory" is what happens when the grid "jams" (runs out of valid movements) but the player had already won (had already reached the target goal number). %prep %autosetup -n py2048base-0.48 %build %py3_build %install %py3_install install -d -m755 %{buildroot}/%{_pkgdocdir} if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi pushd %{buildroot} if [ -d usr/lib ]; then find usr/lib -type f -printf "\"/%h/%f\"\n" >> filelist.lst fi if [ -d usr/lib64 ]; then find usr/lib64 -type f -printf "\"/%h/%f\"\n" >> filelist.lst fi if [ -d usr/bin ]; then find usr/bin -type f -printf "\"/%h/%f\"\n" >> filelist.lst fi if [ -d usr/sbin ]; then find usr/sbin -type f -printf "\"/%h/%f\"\n" >> filelist.lst fi touch doclist.lst if [ -d usr/share/man ]; then find usr/share/man -type f -printf "\"/%h/%f.gz\"\n" >> doclist.lst fi popd mv %{buildroot}/filelist.lst . mv %{buildroot}/doclist.lst . %files -n python3-py2048base -f filelist.lst %dir %{python3_sitelib}/* %files help -f doclist.lst %{_docdir}/* %changelog * Thu Jun 08 2023 Python_Bot - 0.48-1 - Package Spec generated