{"id":27283940,"url":"https://github.com/zjiayao/bigtwogame","last_synced_at":"2025-08-02T23:08:34.711Z","repository":{"id":91150016,"uuid":"111655958","full_name":"zjiayao/BigTwoGame","owner":"zjiayao","description":"Multiplayer Big Two card game in Java","archived":false,"fork":false,"pushed_at":"2017-11-22T11:07:47.000Z","size":1714,"stargazers_count":3,"open_issues_count":0,"forks_count":4,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-07-01T13:55:26.896Z","etag":null,"topics":["card-game","java","socket"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zjiayao.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,"zenodo":null}},"created_at":"2017-11-22T08:21:35.000Z","updated_at":"2024-05-15T02:10:06.000Z","dependencies_parsed_at":"2023-07-24T00:46:00.804Z","dependency_job_id":null,"html_url":"https://github.com/zjiayao/BigTwoGame","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/zjiayao/BigTwoGame","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zjiayao%2FBigTwoGame","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zjiayao%2FBigTwoGame/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zjiayao%2FBigTwoGame/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zjiayao%2FBigTwoGame/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zjiayao","download_url":"https://codeload.github.com/zjiayao/BigTwoGame/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zjiayao%2FBigTwoGame/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":268470799,"owners_count":24255391,"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","status":"online","status_checked_at":"2025-08-02T02:00:12.353Z","response_time":74,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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","java","socket"],"created_at":"2025-04-11T18:47:07.402Z","updated_at":"2025-08-02T23:08:34.647Z","avatar_url":"https://github.com/zjiayao.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Big Two Game with `Java`\n\n[![License](https://img.shields.io/badge/License-LGPL%20v3-blue.svg)](https://github.com/zjiayao/BigTwoGame/blob/master/LICENSE)\n[![Travis Status](https://travis-ci.org/zjiayao/BigTwoGame.svg?branch=master)](https://travis-ci.org/zjiayao/BigTwoGame/)\n[![Appveyor Status](https://ci.appveyor.com/api/projects/status/nsmqa9hgnn3kponw?svg=true)](https://ci.appveyor.com/project/zjiayao/bigtwogame)\n[![Read the Doc](https://img.shields.io/badge/documentation-ready-brightgreen.svg)](http://htmlpreview.github.io/?https://github.com/zjiayao/BigTwoGame/blob/master/doc/index.html)\n[![Chat on Gitter](https://badges.gitter.im/zjiayao/BigTwoGame.svg)](https://gitter.im/zjiayao/BigTwoGame/)\n\n\n![board](figs/board.png)\n\n\n\n## Introduction and Features\n\nThe \"Big Two\" game is a popular card game of four players.\n\"Big Two Game with `Java`\", as the name suggested, is powered by `Java`.\n\n\nThis game supports the following features:\n\n\n- Pleasant UI/UX\n\n![overview](figs/overview.png)\n\n- Multi-player via Socket I/O (both localhost/LAN/WAN)\n\n![log](figs/log.png)\n\n- Shortcut Keys\n\nMultiple shortcuts are supported for better\nenjoying the game:\n\n| Key | Function |\n|:------------------:|:----:|\n| `\u003cSHIFT\u003e + \u003cRETURN\u003e` | Play |\n|       `\u003cSPACE\u003e`      | Pass |\n|  `\u003cCTRL\u003e + \u003cRETURN\u003e` | Hint |\n|      `\u003cRETURN\u003e`      | Chat |\n\n\n- Game Hints\n\nGot stuck of what can be played? No problem,\na hinter comes to rescue:\n\n![hint](figs/hint.png)\n\n\n- Asynchronous Chatting\n\nChat with your friends while gaming!\n\n![msg](figs/msg.png)\n\n\n## Installation\n\nBefore proceed, you should make sure you have a working `Java` distribution\nof version greater than `JSE-6`. To obtain a latest copy, one may\nvisit the [Oracle's JSE page](http://www.oracle.com/technetwork/java/javase/overview/index.html).\n\nFirst, clone this repo using `git`:\n\n    git clone https://github.com/zjiayao/BigTwoGame\n\nThen one may compile from source:\n\n    cd BigTwoGame/src \u0026\u0026 javac BigTwoClient.java \u0026\u0026 javac BigTwoServer.java\n\nThat's all!\n\n\n## Usage\n\nBig-Two Game supports multi-player, and can be invoked in a LAN environment. In\nthis section, we run the server and clients on `localhost` for illustration.\n\nFirst compile the source (see previous section) and navigate\nto the `src` folder:\n\n    cd src\n\nthen invoke the `server`:\n\n    java ./BigTwoServer \u0026\n\nOn a Windows machine, the command is analogous:\n\n    run java ./BigTwoServer\n\nThis command spawns a dedicated server window,\nby default, listens to the socket at `localhost`\nwith port being `2397`.\n\n![server](figs/server.png)\n\nNoted each game requires four players, hence\nwe run four clients:\n\n    java ./BigTwoClient \u0026\n    # ...\n\nFirst specify your name and join the server:\n\n![player](figs/player.png)\n\n![config](figs/config.png)\n\nAfter game ends, the result is prompted:\n\n![result](figs/result.png)\n\nAfter all players view the result, a new game is about\nto begin.\n\n\n## Development\n\nYou are welcome to submit a PR, be sure to check\nthe thorough [documentation](http://htmlpreview.github.io/?https://github.com/zjiayao/BigTwoGame/blob/master/doc/index.html) of the implementation.\n\n### Software Structure\n\nEssentially, the game is modeled by a handful of\nclasses and interfaces, concretely:\n\n![uml-class](doc/doc-files/Class%20Overview.svg)\n\nA [much more detailed class diagram](http://htmlpreview.github.io/?https://github.com/zjiayao/BigTwoGame/blob/master/doc/doc-files/Class%20Diagram.svg) can also be found\nin the `doc/doc-files` subfolder, which listed\nall major APIs.\n\nAs such, the core use cases are summarized below:\n\n![uml-uc](doc/doc-files/Use%20Case.svg)\n\n### UI/UX Design\n\nThe core philosophy for the design is simplicity,\nwhich infact turns out pretty well. The GUI is powered\nby `java.swing`, mostly `JPanel` and its subclasses.\n\nAn overview of the components is outlined below:\n\n![ui-ux](doc/doc-files/GUI%20Design.svg)\n\n\n## Disclaimer\n\nThis project has been submitted in partial fulfillment\nfor the course *OOP and Java* offered by HKU, 2016-17.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzjiayao%2Fbigtwogame","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzjiayao%2Fbigtwogame","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzjiayao%2Fbigtwogame/lists"}