{"id":20305985,"url":"https://github.com/prmr/solitaire","last_synced_at":"2025-05-12T17:26:10.649Z","repository":{"id":77618693,"uuid":"48183146","full_name":"prmr/Solitaire","owner":"prmr","description":"Implementation of the Solitaire card game with JavaFX ","archived":false,"fork":false,"pushed_at":"2025-05-06T17:40:45.000Z","size":680,"stargazers_count":27,"open_issues_count":0,"forks_count":36,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-05-06T18:44:16.393Z","etag":null,"topics":["card-game","desktop-app","desktop-application","java","javafx","solitaire","solitaire-card-game"],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/prmr.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2015-12-17T15:44:11.000Z","updated_at":"2025-05-06T17:40:49.000Z","dependencies_parsed_at":"2024-08-05T20:05:35.586Z","dependency_job_id":null,"html_url":"https://github.com/prmr/Solitaire","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prmr%2FSolitaire","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prmr%2FSolitaire/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prmr%2FSolitaire/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prmr%2FSolitaire/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/prmr","download_url":"https://codeload.github.com/prmr/Solitaire/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253785980,"owners_count":21964067,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["card-game","desktop-app","desktop-application","java","javafx","solitaire","solitaire-card-game"],"created_at":"2024-11-14T17:11:07.723Z","updated_at":"2025-05-12T17:26:10.642Z","avatar_url":"https://github.com/prmr.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Solitaire\nImplementation of a [Solitaire card game](https://en.wikipedia.org/wiki/Patience_(game)) with [JavaFX](https://openjfx.io/). \n\nDemonstration application used in the book [Introduction to Software Design with Java, 2nd edition](https://link.springer.com/book/10.1007/978-3-030-97899-0). \n[Release 1.2](https://github.com/prmr/Solitaire/tree/v1.2) is consistent with the [2nd edition](https://link.springer.com/book/10.1007/978-3-030-97899-0) of the book. [Release 1.0](https://github.com/prmr/Solitaire/tree/v1.0) is consistent with the [1st edition](https://www.springer.com/us/book/9783030240936).\n\n![Screenshot of the Solitaire application](Solitaire.png)\n\n## Building the Application\n\nThis repository is configured to build automatically in Eclipse with Java 21 and JavaFX 21.\n\nHowever, when first imported, the project will show a compilation error because the JavaFX dependency is missing.\n\nTo add JavaFX:\n\n1. Download [JavaFX 21](https://jdk.java.net/javafx21/);\n2. Create a new `User Library` under `Eclipse -\u003e Window -\u003e Preferences -\u003e Java -\u003e Build Path -\u003e User Libraries -\u003e New`. Name it `JavaFX21` and include the jars under the `lib` folder from the location where you extracted the JavaFX download.\n\nThe project should then build properly.\n\n## Running the Application\n\nRight-click on the project and select `Run As -\u003e Java Application`. Select `Solitaire` from the list. \n\nTo run the tests, select `Run As - \u003e JUnit Test`.\n\nThere are also two driver programs, `Driver` and `CrashTest`, which run the application in headless mode (that is, without the GUI).\n\n## Playing the Game\n\n* Click on the deck of cards (top left) to draw/reveal a new card.\n* Drag and drop cards to the _foundation piles_ (at the top) or to piles in the _tableau_ (at the bottom). Cards in foundations piles must be of the same suit, in strictly consecutive ascending rank. Cards in the tableau must be in strictly consecutive decreasing rank, but in alternating suit color, as illustrated above.\n* Press \u003ckbd\u003eEnter\u003c/kbd\u003e to automatically play a move.\n* Press \u003ckbd\u003eBackspace\u003c/kbd\u003e to undo the last move.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprmr%2Fsolitaire","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fprmr%2Fsolitaire","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprmr%2Fsolitaire/lists"}