Skip to content

cjen07/gobblet-gobblers

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

78 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

gobblet gobblers

gobblet gobblers game in elixir, phoenix and elm

Play online: playground (v2.1-nightly lastest)

Rules: gobblet-gobblers

To start your Phoenix server:

  • Install dependencies with mix deps.get
  • Create and migrate your database with mix ecto.create && mix ecto.migrate
  • Install Node.js dependencies with cd assets && npm install
  • Install Elm dependencies with cd assets/elm && elm_install
  • Start Phoenix endpoint with mix phx.server

Now you can visit localhost:4000 from your browser.

to-do -> v1.0

  • use phoenix v1.3
  • replace js by elm
  • add gobblet logic
  • add gobblet view
  • test and publish

to-do for ux -> v2.0

  • better ui design with color
  • add unique id support using symbol
  • show info when you pick up a piece
  • add "Concede" button to give up

to-do for special rules -> v2.0

  • after a player moves a piece, if both players have 3 pieces in a line, the game ties

to-do for better ux

  • stats bar should always be centered
  • be responsive to different screen sizes
  • no re-login without logout, add back button
  • add to homescreen, add icon and improve pieces
  • add logo, put effects and user instruction

to-do for system

  • add github link
  • add automatic pairing
  • game data logger
  • websocket moniter

interesting bug

  • when two players are playing, and then one player unpluges the internet, the other player will receive no msg and will result in a zombie channel (websocket) which means if one enters the channel, it is always full or one will be playing with a zombie player. fixed zombie behaviour with a delay by this or to try presense in elm-phoenix new merges

fix me

  • safari add-to-homescreen back button leading to pages with search bar
  • remove embedded alerts

remark

  • this repo is highly encouraged by this repo.
  • I fixed two bugs and updated for elixir v1.4 using Registry: repo.