Code Monkey home page Code Monkey logo

fish's Introduction

Animals playing fish

Online Fish

Fish (but online) for those booted out of campus!

Motivation

Due to COVID-19, my first year on campus was cut short. I remember feeling devastated along with my friends and desperate to somehow recreate the interactions that being on-campus together had offered. That was when I took the intiative to digitalize Fish, the card game. Fish was a defining part of our experiences on campus. It was our go-to for taking "breaks" from problem sets. I hoped that by recreating the card game that we all loved, I would be able to keep my friends connected.

How to play

Gather five other friends and have someone create a room. Using the server generated room key, have the remaining friends join using the key. Only when all players are ready can the room creator start the game.

As with in-person Fish, you can ask the opposing team for a card, respond to an ask, or declare a half-suit. You may only ask and respond when it is your turn, but you can declare at any time. It is important to note that declaring "pauses" the game.

The enforced rules are nearly the same as the set of rules listed here. What differs is that:

  • Players can declare outside of their turn
  • Incorrect declares go to the other team, regardless of ownership of the cards
  • Play continues until one team reaches 5 half-suits

Note: If the player whose turn it is runs out of cards, the turn will go back to the asker if it was their turn to respond, or it will go to a teammate still in the game. This is to mimic the rule of "passing the turn to the player on the left".

Setting Up Locally

  • git clone this repository
  • Run npm install
  • Open two tabs in terminal
  • Run npm start to start the back end
  • Run npm run hotloader to start the front end
  • Go to localhost:5000

Credits

Credits to Jason Lin for the initial contributions.

fish's People

Contributors

amy-lei avatar dependabot[bot] avatar jasonlin43212 avatar

Stargazers

 avatar  avatar

Watchers

 avatar

fish's Issues

Look into and possibly switch to React's Context API

  • Because we rely heavily on socket events and they're placed in componentDidMount(), props from the redux store are often registered as null. This causes a lot of issues down the line, and we have resorted to hacky solutions before. Let's not accumulate any more technical debt!

Allow players to return after disconnect

  • Notify players when someone disconnects so they are aware
  • Get the player back in the game with the correct info
    • Make sure backend is always up-to-date with data on front-end
  • At the same time, prevent players who weren't originally in the game from joining

Delete game from db if start never pressed

Dont wanna bloat our db and limit the possible keys.
Maybe when theres a collision in key, check if there are any players? This also means we need work on disconnecting users when they leave.

Make website responsive!

Right now, its designed is 100% based off of a Macbook Pro.
It is especially NOT mobile friendly.

New card does not show up in real time

  • After successfully guessing a card, the card does not appear in the game view, although it is a part of the state (as seen in the ask view)
    • Perhaps because ViewHand is not connected to the store

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.