The goal of this program is to provide an intuitive virtual chess table for friendly play across the internet. No rules will be hard-coded, so you can play any variations you please.
Obviously this is not for tournaments. Just like a real chess board, if your opponent goes to the bathroom you can move all his pieces around and run down his clock. Currently I have no plans to simulate the nervous "Oh good, you're back. Shall we continue?" upon your opponent's return.
Chessnuts is fairly basic. It allows you to host a multiplayer session with up to 64 players/observers, and will smoothly update everyone's board as pieces are dragged around. It also includes a chat window and several different setup schemes including traditional, random, and Fischer random (chess960), with even, odd, or uncorrelated symmetry. Since version 0.80, chessnuts now includes a syncronized chess clock (toggle it by pushing the appropriate button or the space bar).
The source is included with each distribution. Feel free to tinker with it as you see fit. It should compile right out of the box with the latest wxdev-c++.
Special thanks to the makers of xchess, whose pieces I totally swiped. That's what you get for including a screenshot on sourceforge! Muahahahahaha!
Controls
Left Mouse: pick up / put down pieces
Right Mouse: duplicate piece, or delete piece you're holding when hovering over an empty square
Space: Push the bottom toggle button of the chess clock, but only if you have recently touched the chess board.
Plans
- more options for chess clock
- Fancy-pants board graphics, different chess sets (contact me if you want to contribute to this).
- bughouse setup
- Sounds and possibly automatic trash-talk buttons
- A button to pound the table and swat the pieces away
- Make sure the error-on-close bug is dead.
Change Log
Version 0.9b
- Cleaned up the GUI a bit, moved the host/connect info to a dialog
- Fixed a few minor bugs.
Version 0.82b
- Changed default piece colors.
- Added the option for users to set piece colors as they see fit.
- Other small visual enhancements.
Version 0.81b
- Made clock face change color when it reaches zero.
- Added a slider to adjust how much the floaties are smoothed.
- Made it so a click is required to focus the board, so only someone who clicked can use space to toggle clocks (and chessnuts won't steal focus when your mouse passes over it).
- Enter now formats the clock entries.
- Other GUI updates.
Version 0.80b
- Added a chess clock. Press the button or "SPACE" to toggle it.
- Enlarged the board.
- Enabled the floaties by default. They seem to work without problems now.
Version 0.73b
- Added optional new method of board update, sending single piece rather than the whole board, to avoid the piece multiplying effect when several people are clicking at once
- Added "clear board" option to setup
- Added "uncorrelated" to the setup style (so each player gets a different random)
- Added save/load buttons
Version 0.72b
- Added a frames per second counter.
- Completely reworked how it draws. It now only draws the board from a wxTimer event, to keep the framerates at 100 or below. Hopefully this will help fix the network bug.
Version 0.71b
- Disabled floaties by default, since they're causing odd behavior on the internet (not on my LAN)
- Added floaties per second box to count the number of incoming floaties
Version 0.7b
- Cleaned up the GUI, moved a lot of uncommonly-adjusted parameters a separate options window.
- Added the option to smooth the pieces that are moving around the board. This slows the response a bit, but it's far less jerky on high-ping connections.
- Added options to disable floaty pieces (making it behave like version 0.5b).
- Can now change your user name while connected.
- Fixed the back-row-disappearing-pieces bug.
- Settings/options/board are now saved upon closing.
- Other small tweaks and improvements.
Version 0.61b
- the piece you're holding now shows up on each client board
- overhauled and cleaned up the connection/client data code
- fixed memory leaks
Version 0.5b
- edge pieces no longer disappear
- server/client newlines taken care of
Version 0.42b
- Added Fischer Random / Chess 960 setup option
- Added Pawns Only / Manual setup option
- Update GUI, and made mouse indistinguishably less annoying
Version 0.41b
- Made the mouse behavior WAY less annoying
Version 0.4b
- Added ability to duplicate pieces with right click
- Added board editing mode
- Added odd setup mode
- Some other stuff I forgot about
Version 0.31b
- Added basic random setup
- Updated the GUI
- Allowed the user to specify how many people can play/watch total.
- Fixed some stuff.
Version 0.3b
- Added a user list.
- Completely reworked how the server deals with connections.
- Other small thingies here and there.
