71 lines
1.8 KiB
Markdown
71 lines
1.8 KiB
Markdown
|
|
# Go Fish
|
||
|
|
|
||
|
|
A web-based implementation of the classic Go Fish card game.
|
||
|
|
|
||
|
|
## Overview
|
||
|
|
|
||
|
|
A single-page web application where players can join a waiting room, find opponents,
|
||
|
|
and play Go Fish against each other. Players already in a game are marked as
|
||
|
|
unavailable in the waiting room.
|
||
|
|
|
||
|
|
## Features
|
||
|
|
|
||
|
|
- **Waiting room**: View other online players, unavailable players marked in red
|
||
|
|
- **Matchmaking**: Click on available players to start a game
|
||
|
|
- **Go Fish gameplay**: Ask opponents for ranks, draw from deck if unavailable
|
||
|
|
- **Book collection**: Collect sets of 4 cards (books)
|
||
|
|
- **Win condition**: First player to collect 13 books wins
|
||
|
|
|
||
|
|
## Getting Started
|
||
|
|
|
||
|
|
### Prerequisites
|
||
|
|
|
||
|
|
- Go 1.21 or later
|
||
|
|
|
||
|
|
### Installation
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# Clone the repository
|
||
|
|
git clone <repo-url> go-fish
|
||
|
|
cd go-fish
|
||
|
|
|
||
|
|
# Build the application
|
||
|
|
make build
|
||
|
|
|
||
|
|
# Or run directly
|
||
|
|
make run
|
||
|
|
```
|
||
|
|
|
||
|
|
The application will start on `http://localhost:3000`
|
||
|
|
|
||
|
|
### Running
|
||
|
|
|
||
|
|
```bash
|
||
|
|
make run
|
||
|
|
```
|
||
|
|
|
||
|
|
Or build and run manually:
|
||
|
|
|
||
|
|
```bash
|
||
|
|
./go-fish
|
||
|
|
```
|
||
|
|
|
||
|
|
## How to Play
|
||
|
|
|
||
|
|
1. Open your browser and navigate to `http://localhost:3000`
|
||
|
|
2. Click "Join Waiting Room" to enter the waiting area
|
||
|
|
3. See other players - those with green backgrounds are available
|
||
|
|
4. Players already in a game appear with red backgrounds
|
||
|
|
5. Click on an available player to be matched and start a game
|
||
|
|
6. Use the rank buttons (A, 2, 3, ..., K) to ask your opponent for cards
|
||
|
|
7. Collect sets of 4 matching cards (books)
|
||
|
|
8. First to 13 books wins!
|
||
|
|
|
||
|
|
## Game Rules
|
||
|
|
|
||
|
|
- Each player starts with 7 cards from a standard 52-card deck
|
||
|
|
- On your turn, ask your opponent for a specific rank (A, 2-10, J, Q, K)
|
||
|
|
- If the opponent has the rank, they must give you all cards of that rank
|
||
|
|
- If the opponent doesn't have the rank, say "Go Fish" and you draw from the deck
|
||
|
|
- Collect 4 of a kind to score a book
|
||
|
|
- First player to 13 books wins
|