# image-puzzle-game
![logo](https://raw.githubusercontent.com/francisohara24/image-puzzle-game/master/data/image-puzzle-game-logo.png)
A 3 x 3 grid semi-interactive image puzzle game built entirely using the Pillow Python library.
- Designed to be executed in an Interactive Python notebook environment.
## Demo
1. Access the demo notebook [here](https://colab.research.google.com/github/francisohara24/image-puzzle-game/blob/master/src/image_puzzle_game/demo.ipynb)
2. Log into your Google Account.
3. Press the round play (run) button.
3. Enjoy the game!
## How to Play
1. Enter the number of the tile you would like to move (displayed on the tiles from 1 to 8).
2. Enter the position on the grid you would like to move the tile to.
- The 3 x 3 grid is labelled with positions from 1 to 9 starting from the upper left corner down to the lower right.
3. Each tile can only be moved either vertically or horizontally to an adjacent empty position but not diagonally.
4. Move the tiles until they have aligned to form the correct image.
Raw data
{
"_id": null,
"home_page": "",
"name": "image-puzzle-game",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.10",
"maintainer_email": "",
"keywords": "game,games,image,jupyter,notebook,pillow,play,puzzle",
"author": "",
"author_email": "Francis O'Hara <franciskohara@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/63/aa/f8d0d31d923c631f116529d9ddc98fb391df0a0e39a24b6839fefb3c690a/image_puzzle_game-1.0.0.tar.gz",
"platform": null,
"description": "# image-puzzle-game\n![logo](https://raw.githubusercontent.com/francisohara24/image-puzzle-game/master/data/image-puzzle-game-logo.png)\n\nA 3 x 3 grid semi-interactive image puzzle game built entirely using the Pillow Python library.\n\n- Designed to be executed in an Interactive Python notebook environment.\n\n## Demo\n1. Access the demo notebook [here](https://colab.research.google.com/github/francisohara24/image-puzzle-game/blob/master/src/image_puzzle_game/demo.ipynb)\n2. Log into your Google Account.\n3. Press the round play (run) button.\n3. Enjoy the game!\n\n\n## How to Play\n1. Enter the number of the tile you would like to move (displayed on the tiles from 1 to 8).\n2. Enter the position on the grid you would like to move the tile to.\n - The 3 x 3 grid is labelled with positions from 1 to 9 starting from the upper left corner down to the lower right.\n3. Each tile can only be moved either vertically or horizontally to an adjacent empty position but not diagonally.\n4. Move the tiles until they have aligned to form the correct image.\n",
"bugtrack_url": null,
"license": "",
"summary": "A 3x3 grid image puzzle game built using the Pillow library.",
"version": "1.0.0",
"project_urls": {
"Bug Tracker": "https://github.com/francisohara24/image-puzzle-game/issues",
"Homepage": "https://github.com/francisohara24/image-puzzle-game"
},
"split_keywords": [
"game",
"games",
"image",
"jupyter",
"notebook",
"pillow",
"play",
"puzzle"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "28a5a342387d94dcff63305f0770ca2f83e61bfea60c002e5db92efadca6ea4b",
"md5": "15de7d9b0a0e56bda1b06b0e93ac385a",
"sha256": "faeb5147afa412dff8906473a0acec7a80a03e2e52a5a63f26bafbfcaf58553a"
},
"downloads": -1,
"filename": "image_puzzle_game-1.0.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "15de7d9b0a0e56bda1b06b0e93ac385a",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.10",
"size": 6216,
"upload_time": "2023-10-29T19:32:49",
"upload_time_iso_8601": "2023-10-29T19:32:49.189021Z",
"url": "https://files.pythonhosted.org/packages/28/a5/a342387d94dcff63305f0770ca2f83e61bfea60c002e5db92efadca6ea4b/image_puzzle_game-1.0.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "63aaf8d0d31d923c631f116529d9ddc98fb391df0a0e39a24b6839fefb3c690a",
"md5": "2d25a8fac3d03ba43e43b7d99dd492f6",
"sha256": "5155512026e48f048e859df6c29da14bf6efe8850723e5026fa8db86536d2df4"
},
"downloads": -1,
"filename": "image_puzzle_game-1.0.0.tar.gz",
"has_sig": false,
"md5_digest": "2d25a8fac3d03ba43e43b7d99dd492f6",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.10",
"size": 44414495,
"upload_time": "2023-10-29T19:33:01",
"upload_time_iso_8601": "2023-10-29T19:33:01.182033Z",
"url": "https://files.pythonhosted.org/packages/63/aa/f8d0d31d923c631f116529d9ddc98fb391df0a0e39a24b6839fefb3c690a/image_puzzle_game-1.0.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-10-29 19:33:01",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "francisohara24",
"github_project": "image-puzzle-game",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"requirements": [
{
"name": "anyio",
"specs": [
[
"==",
"4.0.0"
]
]
},
{
"name": "appnope",
"specs": [
[
"==",
"0.1.3"
]
]
},
{
"name": "argon2-cffi",
"specs": [
[
"==",
"23.1.0"
]
]
},
{
"name": "argon2-cffi-bindings",
"specs": [
[
"==",
"21.2.0"
]
]
},
{
"name": "arrow",
"specs": [
[
"==",
"1.3.0"
]
]
},
{
"name": "asttokens",
"specs": [
[
"==",
"2.4.0"
]
]
},
{
"name": "async-lru",
"specs": [
[
"==",
"2.0.4"
]
]
},
{
"name": "attrs",
"specs": [
[
"==",
"23.1.0"
]
]
},
{
"name": "Babel",
"specs": [
[
"==",
"2.13.0"
]
]
},
{
"name": "backcall",
"specs": [
[
"==",
"0.2.0"
]
]
},
{
"name": "beautifulsoup4",
"specs": [
[
"==",
"4.12.2"
]
]
},
{
"name": "bleach",
"specs": [
[
"==",
"6.1.0"
]
]
},
{
"name": "certifi",
"specs": [
[
"==",
"2023.7.22"
]
]
},
{
"name": "cffi",
"specs": [
[
"==",
"1.16.0"
]
]
},
{
"name": "charset-normalizer",
"specs": [
[
"==",
"3.3.0"
]
]
},
{
"name": "comm",
"specs": [
[
"==",
"0.1.4"
]
]
},
{
"name": "debugpy",
"specs": [
[
"==",
"1.8.0"
]
]
},
{
"name": "decorator",
"specs": [
[
"==",
"5.1.1"
]
]
},
{
"name": "defusedxml",
"specs": [
[
"==",
"0.7.1"
]
]
},
{
"name": "executing",
"specs": [
[
"==",
"2.0.0"
]
]
},
{
"name": "fastjsonschema",
"specs": [
[
"==",
"2.18.1"
]
]
},
{
"name": "fqdn",
"specs": [
[
"==",
"1.5.1"
]
]
},
{
"name": "idna",
"specs": [
[
"==",
"3.4"
]
]
},
{
"name": "ipykernel",
"specs": [
[
"==",
"6.25.2"
]
]
},
{
"name": "ipython",
"specs": [
[
"==",
"8.16.1"
]
]
},
{
"name": "ipython-genutils",
"specs": [
[
"==",
"0.2.0"
]
]
},
{
"name": "ipywidgets",
"specs": [
[
"==",
"8.1.1"
]
]
},
{
"name": "isoduration",
"specs": [
[
"==",
"20.11.0"
]
]
},
{
"name": "jedi",
"specs": [
[
"==",
"0.19.1"
]
]
},
{
"name": "Jinja2",
"specs": [
[
"==",
"3.1.2"
]
]
},
{
"name": "json5",
"specs": [
[
"==",
"0.9.14"
]
]
},
{
"name": "jsonpointer",
"specs": [
[
"==",
"2.4"
]
]
},
{
"name": "jsonschema",
"specs": [
[
"==",
"4.19.1"
]
]
},
{
"name": "jsonschema-specifications",
"specs": [
[
"==",
"2023.7.1"
]
]
},
{
"name": "jupyter",
"specs": [
[
"==",
"1.0.0"
]
]
},
{
"name": "jupyter-console",
"specs": [
[
"==",
"6.6.3"
]
]
},
{
"name": "jupyter-events",
"specs": [
[
"==",
"0.7.0"
]
]
},
{
"name": "jupyter-lsp",
"specs": [
[
"==",
"2.2.0"
]
]
},
{
"name": "jupyter_client",
"specs": [
[
"==",
"8.3.1"
]
]
},
{
"name": "jupyter_core",
"specs": [
[
"==",
"5.3.2"
]
]
},
{
"name": "jupyter_server",
"specs": [
[
"==",
"2.7.3"
]
]
},
{
"name": "jupyter_server_terminals",
"specs": [
[
"==",
"0.4.4"
]
]
},
{
"name": "jupyterlab",
"specs": [
[
"==",
"4.0.6"
]
]
},
{
"name": "jupyterlab-pygments",
"specs": [
[
"==",
"0.2.2"
]
]
},
{
"name": "jupyterlab-widgets",
"specs": [
[
"==",
"3.0.9"
]
]
},
{
"name": "jupyterlab_server",
"specs": [
[
"==",
"2.25.0"
]
]
},
{
"name": "MarkupSafe",
"specs": [
[
"==",
"2.1.3"
]
]
},
{
"name": "matplotlib-inline",
"specs": [
[
"==",
"0.1.6"
]
]
},
{
"name": "mistune",
"specs": [
[
"==",
"3.0.2"
]
]
},
{
"name": "nbclient",
"specs": [
[
"==",
"0.8.0"
]
]
},
{
"name": "nbconvert",
"specs": [
[
"==",
"7.9.2"
]
]
},
{
"name": "nbformat",
"specs": [
[
"==",
"5.9.2"
]
]
},
{
"name": "nest-asyncio",
"specs": [
[
"==",
"1.5.8"
]
]
},
{
"name": "notebook",
"specs": [
[
"==",
"7.0.4"
]
]
},
{
"name": "notebook_shim",
"specs": [
[
"==",
"0.2.3"
]
]
},
{
"name": "overrides",
"specs": [
[
"==",
"7.4.0"
]
]
},
{
"name": "packaging",
"specs": [
[
"==",
"23.2"
]
]
},
{
"name": "pandocfilters",
"specs": [
[
"==",
"1.5.0"
]
]
},
{
"name": "parso",
"specs": [
[
"==",
"0.8.3"
]
]
},
{
"name": "pexpect",
"specs": [
[
"==",
"4.8.0"
]
]
},
{
"name": "pickleshare",
"specs": [
[
"==",
"0.7.5"
]
]
},
{
"name": "Pillow",
"specs": [
[
"==",
"10.0.1"
]
]
},
{
"name": "platformdirs",
"specs": [
[
"==",
"3.11.0"
]
]
},
{
"name": "prometheus-client",
"specs": [
[
"==",
"0.17.1"
]
]
},
{
"name": "prompt-toolkit",
"specs": [
[
"==",
"3.0.39"
]
]
},
{
"name": "psutil",
"specs": [
[
"==",
"5.9.5"
]
]
},
{
"name": "ptyprocess",
"specs": [
[
"==",
"0.7.0"
]
]
},
{
"name": "pure-eval",
"specs": [
[
"==",
"0.2.2"
]
]
},
{
"name": "pycparser",
"specs": [
[
"==",
"2.21"
]
]
},
{
"name": "Pygments",
"specs": [
[
"==",
"2.16.1"
]
]
},
{
"name": "python-dateutil",
"specs": [
[
"==",
"2.8.2"
]
]
},
{
"name": "python-json-logger",
"specs": [
[
"==",
"2.0.7"
]
]
},
{
"name": "PyYAML",
"specs": [
[
"==",
"6.0.1"
]
]
},
{
"name": "pyzmq",
"specs": [
[
"==",
"25.1.1"
]
]
},
{
"name": "qtconsole",
"specs": [
[
"==",
"5.4.4"
]
]
},
{
"name": "QtPy",
"specs": [
[
"==",
"2.4.0"
]
]
},
{
"name": "referencing",
"specs": [
[
"==",
"0.30.2"
]
]
},
{
"name": "requests",
"specs": [
[
"==",
"2.31.0"
]
]
},
{
"name": "rfc3339-validator",
"specs": [
[
"==",
"0.1.4"
]
]
},
{
"name": "rfc3986-validator",
"specs": [
[
"==",
"0.1.1"
]
]
},
{
"name": "rpds-py",
"specs": [
[
"==",
"0.10.4"
]
]
},
{
"name": "Send2Trash",
"specs": [
[
"==",
"1.8.2"
]
]
},
{
"name": "six",
"specs": [
[
"==",
"1.16.0"
]
]
},
{
"name": "sniffio",
"specs": [
[
"==",
"1.3.0"
]
]
},
{
"name": "soupsieve",
"specs": [
[
"==",
"2.5"
]
]
},
{
"name": "stack-data",
"specs": [
[
"==",
"0.6.3"
]
]
},
{
"name": "terminado",
"specs": [
[
"==",
"0.17.1"
]
]
},
{
"name": "tinycss2",
"specs": [
[
"==",
"1.2.1"
]
]
},
{
"name": "tornado",
"specs": [
[
"==",
"6.3.3"
]
]
},
{
"name": "traitlets",
"specs": [
[
"==",
"5.11.2"
]
]
},
{
"name": "types-python-dateutil",
"specs": [
[
"==",
"2.8.19.14"
]
]
},
{
"name": "uri-template",
"specs": [
[
"==",
"1.3.0"
]
]
},
{
"name": "urllib3",
"specs": [
[
"==",
"2.0.6"
]
]
},
{
"name": "wcwidth",
"specs": [
[
"==",
"0.2.8"
]
]
},
{
"name": "webcolors",
"specs": [
[
"==",
"1.13"
]
]
},
{
"name": "webencodings",
"specs": [
[
"==",
"0.5.1"
]
]
},
{
"name": "websocket-client",
"specs": [
[
"==",
"1.6.3"
]
]
},
{
"name": "widgetsnbextension",
"specs": [
[
"==",
"4.0.9"
]
]
}
],
"lcname": "image-puzzle-game"
}