{"id":20305989,"url":"https://github.com/prmr/minesweeper","last_synced_at":"2025-04-11T15:01:48.082Z","repository":{"id":77618696,"uuid":"141712151","full_name":"prmr/Minesweeper","owner":"prmr","description":"The Minesweeper video game in Java","archived":false,"fork":false,"pushed_at":"2024-09-03T16:33:09.000Z","size":98,"stargazers_count":8,"open_issues_count":0,"forks_count":5,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-25T11:04:01.263Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-3.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":"2018-07-20T12:57:14.000Z","updated_at":"2024-12-14T00:19:13.000Z","dependencies_parsed_at":"2024-11-14T17:11:22.190Z","dependency_job_id":"8e0853fb-7705-4d32-bca3-8a4963ebbd51","html_url":"https://github.com/prmr/Minesweeper","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prmr%2FMinesweeper","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prmr%2FMinesweeper/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prmr%2FMinesweeper/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prmr%2FMinesweeper/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/prmr","download_url":"https://codeload.github.com/prmr/Minesweeper/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248428500,"owners_count":21101774,"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":[],"created_at":"2024-11-14T17:11:08.409Z","updated_at":"2025-04-11T15:01:48.052Z","avatar_url":"https://github.com/prmr.png","language":"Java","readme":"# Minesweeper\n\nSample Java application with JavaFX. Demonstration application used in the book [Introduction to Software Design with Java](https://link.springer.com/book/10.1007/978-3-030-24094-3).\n\nThe goal of this project is to help illustrate various design decisions related to abstraction, encapsulation, and information hiding, in the context of a complete working application. The rest of the code has been left to a minimum. Common best practices not implemented here would include externalizing strings and using icons in the UI.\n\nThis application was also designed to be simple enough to be realizable without the help of the Observer pattern. Although using the Observer as part of this design would make a sense, the idea here was to have a code base that could be used for discussion without knowing about the Observer pattern.\n\n![Screenshot of the Minesweeper application](Minesweeper.png)\n\n## Building this 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 this application from the Eclipse Workspace\n\n* Right-click on the project and select `Run As -\u003e Java Application`. Select `Minesweeper` from the list. \n* To run the tests, select `Run As - \u003e JUnit Test`.\n* **MacOs Users**: When you run the application, from the run configuration, make sure the checkbox \"Use the -XstartOnFirstThread argument when launching with SWT\" is _not_ checked. ","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprmr%2Fminesweeper","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fprmr%2Fminesweeper","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprmr%2Fminesweeper/lists"}