Code Monkey home page Code Monkey logo

govsgo's People

Contributors

jeg2 avatar ryanb avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

govsgo's Issues

Game Invitation

When someone requests a game with another user, that user should have the option to reject the game. Alternatively he should be able to modify the game configuration and send the invitation back to the other user. During this one should be able to post messages to say things like "I'd rather play with no handicap".

The game should appear in "Their Turns" list while it's waiting for invitation, and "My Turns" list if they are the receiving player.

Tabs for My Games

The "My Games" column should be split up into 3 tabs: My Turn, Their Turn and Previous Games. Upon clicking a tab the new section will need to be updated through JavaScript.

a chat box

lots of trolls will invade the chat box, but I usually talk about the game I played after the game is finished. I think it would be fun to discuss it right on the site (even when the game is still playing) using a chat box. a simple one will suffice.

budi from Indonesia.
cheers.

Place Stone Quickly

The stone does not show up immediately when placing a move. This is because it must contact the server to determine if it's a legal move and how it should effect the surrounding stones.

Ideally there should be some logic in the JavaScript to handle capturing of stones so it can be displayed immediately.

If this proves too difficult we could just display the stone and then update the capturing later. Maybe add a little spinning wheel to the stone to show that it isn't done.

GNU Go Timeout

Sometimes it's possible for GNU Go to get stuck and take forever to determine a move. This happened in game 11832. For a quick fix I should just make it so GNU Go resigns the game in those rare cases. Currently it gets stuck in a loop trying to determine the best move.

Playing Quickly

If you try to click a location right after you placed a stone it seems to attempt to place the opponents stone there but this is fixed after a reload. Need to do more testing of this.

Private Profile

One should be able to mark their profile as Private if they don't want other users watching their games or viewing their profile.

Remember last game settings

The settings when creating a game should default to whatever the last created game was. So if someone prefers to play 13 x 13 games with 5.5 komi, they won't have to choose that each time.

Player Rank

There should be a field on the edit profile page for entering a Go rank if one knows it. Maybe one day this rank can be calculated automatically based games won and lost.

Initial Computer Move

If the computer has the first move, it sometimes appears to not catch it after creating the game. For some reason the polling doesn't pick up this initial move so one has to reload for it to work.

Variation Editor

It will probably be some time before I can get to this, but there should be a way to add alternative plays. This is perfect for a teaching game or when reviewing a game.

Not only that, but it can be used as a way to predict moves and store up responses automatically which will really help long turn-based games go quickly. Many times in Go moves are forced and there's only one or two places the opponent can go. If one adds a variation predicting the opponent's moves, it would play the response automatically.

I am picturing an "Edit" button below the Go board. When clicking this it would slide down a panel for editing the variations and add marks. It would also show a tree of the moves and variations.

Play Stone on iPhone

It's currently not possible to play a stone on the iPhone, this may be a bug with how JavaScript handles clicking in an area on the iPhone.

Also it would be nice if there was a "Confirm Stone" button on mobile devices, but that may need to go in a separate ticket.

In fact I would like to re-do the interface for mobile devices, and maybe even make an iPhone app, but that will take some time.

Favicon

Add a favicon. It would also be good to add an iPhone icon while we're at it so it shows up nice if it's bookmarked as an iPhone app.

Messages

In a player vs player game, one should be able to send private messages to the other player. This can be done below the My Game and Watch a Game columns. The polling should pick up changes to this.

The move number the comment is made on should be in the database, then we have the option to include it in an SGF file.

Pass/Resign Buttons

The pass and resign buttons are too close to the white information text above. It should be relative positioning to that. Also the buttons should hide when not the current player.

If there isn't already, there should be a javascript confirmation before passing/resigning.

Last Move Time

Each game should have the time it was last played on. This will give them a sense if it is a live game and should consider watching. It will also be very helpful on the My Games list. It can say something like "last move 5 minutes ago".

New Relic

Set up New Relic to help track slow requests which need optimization.

undo feature

It would be nice to be able to undo the last move. Even better would be if you could rewind to any part of a game and try a variation.

Thumbnail Image Padding

The thumbnail images look a little cramped on a full game. They are currently 76 x 76. Instead I think I should make them 80 x 80 and add a couple pixels on each side. I need to experiment.

Automatically Adjust Difficulty

When playing against GNU Go, it would be nice if there was an automatic level adjustment. It would look at your past playing history and automatically set the handicap, komi, and color. When creating a game against the computer, there would be an "Automatically Adjust Difficulty" checkbox which, when checked, would hide the settings and show the user's current level.

Level 1 would be black, 9 handicap, 6.5 komi. Level 2 would be 8 handicap. The default would be level 6, 4 handicap. Level 9 is 0 handicap, 0.5 komi. Level 10 is an even game with 0 handicap and 6.5 komi. Level 11 is the same but player switches to white. Then it starts giving handicap again but this time to the computer.

The user's current level will need to be determined from their past playing history. I'm not yet certain how this algorithm would work. Maybe take the past three games and add one to the level if it's a win and subtract one if it's a loss. Average that out to determine the current level.

I18n Support

Once the site becomes more stable, move all of the English text into the en.yml file and request others to translate this to other languages. I would especially like Japanese, Chinese and Korean to help boost the site's popularity in those areas.

I'm not yet certain how to handle the language selection, maybe with a pop-up menu in the footer.

The chat message cannot be translated, but perhaps there can be a flag image showing which country a given user lives in to help one know if they speak the same language. That should probably go under a different ticket.

Remember Login

The user_id is currently stored in the session, instead it should store a token in a cookie so the user will be remembered when coming back. This unique token will need to be generated upon creating each user.

I'm thinking this unique token can also be used for login through other services. For example, if I supply an API, an iPhone app or other app can log-in through the token so one doesn't need to give away his password.

Alternatively I can turn this into an OAuth provider, but I don't know how that would work when logging in through another OAuth server such as Twitter. Hmm.

Show Captured Stones

Captured stones should appear in the bowl lids. It can display up to 9 or so stones and then display an overlay saying how many there are after that. This makes capturing much more visible.

Looking for Players List

Once someone is signed in, there should be a Looking for Players list on the home page. This list will contain players who are looking for opponents. There should be a button below the list saying "Add Myself" which will place the current user at the top of the list. When that user is in the list there should be a "remove me" button so he can remove himself if he gets enough game offers.

Passing

Passing seems to require the user to click the button twice, and the second click seems to be for the computer. This means the user can end the game early by double passing and GNU Go does its best to estimate the score but not accurately.

Avatar Images

Players could use some avatar images. Maybe grab from Gravatar, Twitter, or Facebook. This can show up next to the player bowl as he's playing.

The players avatars can also be displayed in the corner of the game thumbnails.

board drawing: improving responsiveness

the issue:
old people with bad eye-sight may have hard time trying to click the desired board point.

improvement 1:
improving the board view, so that mouse move will highlight the target position !

improvement 2:
adding animation by replacing the board drawing with html5 canvas.

improvement 3:
for gaining more popularity:
to arrange some contest between artist at http://jsdo.it to draw that board more nicely!

btw:
10x 4 all ryan !
4 being so gifted
and soo sharing.. !
:)

Game Ending Message

When a game ends, something should overlay onto the board saying either "Congratulations, you won!" or "Sorry, you lost."

Both of these would have a "Play Again" button which would bring them to the new-game screen with the same settings.

If they lost, also say "Need help? Check out the Go Resources".

Stone Sound

The "clack" when placing a Go stone on the board is iconic. It would be great if this was in the app. I'm not certain the best way to implement the sound. I'd rather not use Flash, Java or QuickTime. Any way to do it straight through HTML 5? Time to research.

Along these lines, there should also be a sound for chat messages when they come in and a sound saying "I Pass" or "I Resign" when passing or resigning. There should also be a button for turning the sound off.

Forking games

In my opinion it would be a cool feature if you can fork a game:

  1. Select a game
  2. Go to a specific turn
  3. Click a button "fork from here"

Now there is a new game generated with the history of the original to the specified turn. This could be helpful for learning go to try alternatives.

I'm not sure how to handle this if it was a game with two human players. Maybe have an option to select the color and play further against GNU go or invite another player?

Email Notifications

If one is playing a turn-based game, he may want to receive a notification through email when a turn comes in.

This sort of makes it possible to mimic push notifications on an iPhone if one sets it up as a filter. A real iPhone app would be ideal but this might get us by for now.

Login form

I managed to create an account, and it loggued me in.

I tried to login from another computer with the same account, and could not find any login form, only the signup one (which told me my account was already used, as expected).

You really should add an easy to find login form.

Online Status

There should be a green dot next to each user name when they are currently online. This can be done by adding an last_active_at column to the users table which updates every time the user visits a page. It's then easy to check if a user has been active in the past 5 minutes.

This will make it easy to switch between live play and turn-based play. You can browse your list of games and play the opponents who are online.

Player Profile

Each player should have a profile page listing the games he has done. Also a button to challenge that player to a game when logged in.

SGF Download

There should be a "Download Game as SGF" option.

Exception Notifications

There should be some kind of exception notifier. Either add HopToad or use the plugin to send emails about it.

Challenge via E-Mail

Allowing for challenge via e-mail (in my mind) achieves the following.

  1. Not having to recall / lookup another persons user_name.
  2. Users that do not have a login are encouraged to create an account.

With the caveat(s),
2.1. Users that do not want a login can choose to play under a pseudonym (as a Guest).

Update Footer

Make the footer say the following.

Follow us on _Twitter_ and _Facebook_.
This site is _open source_. Problems or suggestions? See our _Issue Tracker_.

Unable to sign in through FB

I am trying to sign in using facebook, but I got this weird message:
Change Rejected (422)

The change you wanted was rejected. Maybe you tried to change something you didn't have access to.

Merge Guest on Sign In

If a user comes to the site who is not signed in (guest) and starts a game, then tries to log-in to an account that they previously signed in with, the games should be changed to that account.

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.