Teach and Play Chess
Chess Learning Game
Teach and Play Chess allows any player to play chess, even if they don't know how. A player can hover the mouse over any piece, theirs or their opponent's, to see all possible valid moves. This provides visual foresight for players to help them better understand the chess pieces and form potential strategy. The program also detects if a player's king is in check and will inform the player of which pieces/moves are valid to save the king from check. The program keeps track of player turns and ends if a player wins or if there's a draw.
You can view the game's code and development on GitHub: https://github.com/Leefeet/Teach-and-Play-Chess
A chess game anyone can play
What began as a working chess program turned into a chess learning tool. The most significant feature of this tool is constant coaching; the player can always see possible piece moves and consequences. My goal was to make playing chess more approachable to close the knowledge gap between well-learned players and those with no experience.
Multiple prototype sessions were performed with different individuals (with and without chess knowledge) to test the efficiency of the program. New features, including hovering to see possible moves, resulted from these tests. Programming bugs were found that otherwise would not have been found through isolated development. I also observed how users interacted with the program to see what could be improved for user experience and interface.
The interface was iterated upon to improve the user's experience. Player names are collected to personally inform who's turn it is. The board's large squares act as the chess board with the pieces clearly overlaid and distinguishable. Hovering over a piece will highlight all of its possible moves by changing the color of other spaces. Different colors represent different moves, like red indicating a capture move. Direct instructions are shown below the board if it's unclear what it to be done at any moment.
The program was developed in Java using the Eclipse IDE and utilizing JavaFX for the visual output. Every chess piece has its own Java class that inherits from a common piece class, which allows for code to be reused for efficiency. The chess board is a two-dimensional array of space classes that can each hold a piece. Events were used for hovering/clicking and conditional logic for deciding what to output when hovering/clicking. You can view the code on GitHub by visiting: https://github.com/Leefeet/Teach-and-Play-Chess
"It was very helpful in teaching me to play the game. It also allows me to participate in a game when I forget how to play it at times."
"Although the movement guide makes it easy for you to see my moves and what I'm going to do, it's actually helping you understand what can be done with your pieces and how you can use them."