{ "info": { "author": "Yegor Bitensky", "author_email": "", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "Intended Audience :: Education", "License :: OSI Approved :: Apache Software License", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3 :: Only", "Topic :: Games/Entertainment" ], "description": "# Abstract games stuff\n\n## Install\n\n`pip install AGStuff`\n\n### Requirements\n\n* Python 3.6 or higher\n\n## Usage\n\n### Cards\n\n#### Core\n\n##### Card(sign)\n\nSome card from standard 52 cards deck.\n\nSign consisting of two symbols (1st symbol is card weight, 2nd symbol is card suit).\n\nWeight symbols: `'2'` (Two), `'3'` (Three), `'4'` (Four), `'5'` (Five), `'6'` (Six), `'7'` (Seven), `'8'` (Eight), `'9'` (Nine), `'T'` (Ten), `'J'` (Jack), `'Q'` (Queen), `'K'` (King), `'A'` or `'1'` (Ace).\n\nSuit symbols: `'c'` (clubs), `'d'` (diamonds), `'h'` (hearts), `'s'` (spades).\n\n> Sign symbols are ignored since 3rd one.\n\n```python\n>>> from agstuff.cards.core import Card\n\n>>> card = Card('As')\n>>> card\nA\u2660\n>>> card.name\n'Ace of spades'\n```\n\n\u0421ards can be compared\n\n```python\n>>> from agstuff.cards.core import Card\n\n>>> card1 = Card('9h')\n>>> card2 = Card('5d')\n>>> card1 != card2\nTrue\n>>> card1 < card2\nFalse\n>>> card1 > card2\nTrue\n>>> card1 == card2\nFalse\n\n>>> card3 = Card('Qc')\n>>> card4 = Card('Qs')\n>>> card3 != card4\nFalse\n>>> card3 < card4\nFalse\n>>> card3 > card4\nFalse\n>>> card3 == card4\nTrue\n```\n\nCard weights or suits can be compared directly\n\n```python\n>>> from agstuff.cards.core import Card\n\n>>> card1 = Card('Td')\n>>> card2 = Card('3d')\n>>> card1.weight != card2.weight\nTrue\n>>> card1.weight < card2.weight\nFalse\n>>> card1.weight > card2.weight\nTrue\n>>> card1.weight == card2.weight\nFalse\n>>> card1.suit != card2.suit\nFalse\n>>> card1.suit == card2.suit\nTrue\n\n>>> card3 = Card('7h')\n>>> card4 = Card('7c')\n>>> card3.weight != card4.weight\nFalse\n>>> card3.weight < card4.weight\nFalse\n>>> card3.weight > card4.weight\nFalse\n>>> card3.weight == card4.weight\nTrue\n>>> card3.suit != card4.suit\nTrue\n>>> card3.suit == card4.suit\nFalse\n```\n\nAlso possible use abstract cards\n\n```python\n>>> from agstuff.cards.core import Card\n\n>>> card1 = Card('8s')\n>>> card2 = Card('K') # abstract king card\n>>> card3 = Card('8') # abstract eight card\n>>> card1 != card2\nTrue\n>>> card1 < card2\nTrue\n>>> card1 > card2\nFalse\n>>> card1 == card2\nFalse\n>>> card1 != card3\nFalse\n>>> card1 < card3\nFalse\n>>> card1 > card3\nFalse\n>>> card1 == card3\nTrue\n\n>>> card4 = Card('4h')\n>>> card5 = Card('d') # abstract diamonds card\n>>> card6 = Card('h') # abstract hearts card\n>>> card4 != card5\nTrue\n>>> card4 == card5\nFalse\n>>> card4 != card6\nFalse\n>>> card4 == card6\nTrue\n```\n\n##### Deck()\n\nStandard 52 cards deck.\n\nThere are 13 weights (Two, Three, Four, Five, Six, Seven, Eight, Nine, Ten, Jack, Queen, King, Ace) and 4 suits (clubs, diamonds, hearts, spades).\n\n```python\n>>> from agstuff.cards.core import Deck\n\n>>> deck = Deck()\n>>> deck\n[\n 2\u2663, 2\u2666, 2\u2665, 2\u2660,\n 3\u2663, 3\u2666, 3\u2665, 3\u2660,\n 4\u2663, 4\u2666, 4\u2665, 4\u2660,\n 5\u2663, 5\u2666, 5\u2665, 5\u2660,\n 6\u2663, 6\u2666, 6\u2665, 6\u2660,\n 7\u2663, 7\u2666, 7\u2665, 7\u2660,\n 8\u2663, 8\u2666, 8\u2665, 8\u2660,\n 9\u2663, 9\u2666, 9\u2665, 9\u2660,\n T\u2663, T\u2666, T\u2665, T\u2660,\n J\u2663, J\u2666, J\u2665, J\u2660,\n Q\u2663, Q\u2666, Q\u2665, Q\u2660,\n K\u2663, K\u2666, K\u2665, K\u2660,\n A\u2663, A\u2666, A\u2665, A\u2660\n]\n>>> deck.size\n52\n>>> cards = deck.push_cards(3)\n>>> cards # generator of 3 random cards\n\n>>> list(cards)\n[6\u2666, 4\u2663, J\u2660]\n>>> deck.size\n49\n>>> deck.refresh()\n>>> deck.size\n52\n```\n\n##### Cards(cards_string=None, cards=None, max_count=7)\n\nSeveral cards.\n\nCards could be set from deck\n\n```python\n>>> from agstuff.cards.core import Deck, Cards\n\n>>> cards = Cards()\n>>> cards.size\n0\n>>> cards\n[]\n\n>>> deck = Deck()\n>>> deck.size\n52\n>>> cards.pull(deck, 3) # pull 3 random cards\n>>> deck.size\n49\n>>> cards.size\n3\n>>> cards\n[4\u2663, 5\u2660, 7\u2666]\n\n>>> cards.pull(deck, 2) # add 2 more cards\n>>> cards.size\n5\n>>> cards\n[4\u2663, 5\u2660, 7\u2666, 9\u2665, J\u2660]\n\n>>> cards.clean()\n>>> cards.size\n0\n>>> cards\n[]\n```\n\nAlso cards could be set by cards string\n\n```python\n>>> from agstuff.cards.core import Cards\n\n>>> cards = Cards(\"2c/3c/4c/5c/6c\")\n>>> cards\n[2\u2663, 3\u2663, 4\u2663, 5\u2663, 6\u2663]\n```\n\nAlso cards could be set by iterable of Card instanses\n\n```python\n>>> from agstuff.cards.core import Card, Cards\n\n>>> cards = Cards(cards=[Card(\"Jd\"), Card(\"2s\"), Card(\"6c\")])\n>>> cards\n[2\u2660, 6\u2663, J\u2666]\n```\n\nThere is a possibility to find out whether the cards contain a card or not\n\n```python\n>>> from agstuff.cards.core import Card, Cards\n\n>>> card1 = Card(\"Qd\")\n>>> card2 = Card(\"8s\")\n>>> cards = Cards(\"Ad/Kd/Qd/Jd/Td\")\n>>> card1 in cards\nTrue\n>>> card2 in cards\nFalse\n```\n\nBy default Cards can contain no more than 52 items, and it could be changed\n\n```python\n>>> from agstuff.cards.core import Deck, Cards\n\n>>> cards1 = Cards(max_count=7)\n>>> deck = Deck()\n>>> cards1.pull(deck, 10)\n>>> cards1\n[5\u2663, 3\u2665, Q\u2660, J\u2663, J\u2666, 8\u2660, 9\u2663]\n\n>>> cards2 = Cards(\"2s/3s/4s/5s/6s/7s/8s/9s/Ts/Js/Qs/Ks/As\", max_count=5)\n>>> cards2\n[2\u2660, 3\u2660, 4\u2660, 5\u2660, 6\u2660]\n```\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/YegorDB/AGStuff", "keywords": "cards", "license": "", "maintainer": "", "maintainer_email": "", "name": "AGStuff", "package_url": "https://pypi.org/project/AGStuff/", "platform": "", "project_url": "https://pypi.org/project/AGStuff/", "project_urls": { "Homepage": "https://github.com/YegorDB/AGStuff" }, "release_url": "https://pypi.org/project/AGStuff/1.0.0/", "requires_dist": null, "requires_python": ">=3.6", "summary": "Abstract games stuff", "version": "1.0.0" }, "last_serial": 5246746, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "c7fc020f946e137d14527e05e0bc5929", "sha256": "20337b86ed385d71ea923f40f5f26e3ebe12e4d52cb131d4e80cc8c3dea90545" }, "downloads": -1, "filename": "AGStuff-1.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "c7fc020f946e137d14527e05e0bc5929", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 14105, "upload_time": "2019-05-09T10:22:46", "url": "https://files.pythonhosted.org/packages/d1/31/f3fb5a1048e638cbc175da7853d496f13d24f33474a4bf7f0a26c1bb8353/AGStuff-1.0.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3acd9e17f99ff197231df1c313014747", "sha256": "072a90e510865836b1342480141878cb9d6d7d09ddd367cb6b848d53eec1b149" }, "downloads": -1, "filename": "AGStuff-1.0.0.tar.gz", "has_sig": false, "md5_digest": "3acd9e17f99ff197231df1c313014747", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 10177, "upload_time": "2019-05-09T10:22:49", "url": "https://files.pythonhosted.org/packages/82/8d/9ec2dd0fd946348425956f704b4906b17f04f59e15fd8373dc53face961b/AGStuff-1.0.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "c7fc020f946e137d14527e05e0bc5929", "sha256": "20337b86ed385d71ea923f40f5f26e3ebe12e4d52cb131d4e80cc8c3dea90545" }, "downloads": -1, "filename": "AGStuff-1.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "c7fc020f946e137d14527e05e0bc5929", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 14105, "upload_time": "2019-05-09T10:22:46", "url": "https://files.pythonhosted.org/packages/d1/31/f3fb5a1048e638cbc175da7853d496f13d24f33474a4bf7f0a26c1bb8353/AGStuff-1.0.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3acd9e17f99ff197231df1c313014747", "sha256": "072a90e510865836b1342480141878cb9d6d7d09ddd367cb6b848d53eec1b149" }, "downloads": -1, "filename": "AGStuff-1.0.0.tar.gz", "has_sig": false, "md5_digest": "3acd9e17f99ff197231df1c313014747", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 10177, "upload_time": "2019-05-09T10:22:49", "url": "https://files.pythonhosted.org/packages/82/8d/9ec2dd0fd946348425956f704b4906b17f04f59e15fd8373dc53face961b/AGStuff-1.0.0.tar.gz" } ] }