You are on page 1of 4

John Maxwell

CS 340 Chess Game Project


Project Description
• Create an interactive game of chess with player vs player, player vs computer, and network play

Features
• Menu options include: new game, save game, load game, rules info, program info, quit
o New game menu pops up gives choices: pvp, pvc, network play, computer difficulty
setting
• players move pieces by dragging with mouse
• start with a 2d surface using icons for chess pieces
• piece movement animations
• piece destruction animation
• various levels of computer difficulty
o adjust how far down the decision tree the computer can look
• can turn on / off display tips
• speed chess game option
• theme chess game option

Programming resources
• Min-max tree – ideal decision tree for chess bot
o http://www.ocf.berkeley.edu/~yosenl/extras/alphabeta/alphabeta.html
o http://www.aihorizon.com/essays/chessai/
o http://www.cs.cornell.edu/boom/2004sp/ProjectArch/Chess/chessmain.html
• Alpha Beta pruning – reduces the number of nodes evaluated by a search algorithm
o http://en.wikipedia.org/wiki/Alpha-beta_pruning
o http://starbase.trincoll.edu/~ram/cpsc352/notes/minimax.html
• Network play – using Qt network widget
o http://doc.trolltech.com/4.2/qtnetwork.html

Program details
• generic piece class
o parameters
 starting location
 available moves
 point value of piece
 color of piece
o individual pieces overrides the generic class
 knight can jump over pieces
 castling
 en passant
• board class
o array of squares
 occupied / unoccupied
 piece occupied
 color of piece occupied
o chess board coordinates on the side
o board tile colors shouldn’t conflict with colors of pieces
• display window
o Drop down toolbar: new game, save game, load game, rules info, program info, quit
 New game / quit displays pop-up box asking to save
 Choosing new game brings up a new option window
• Type of game: pvp, pvc, network
• Style of game: regular chess, speed chess, theme chess
o Hint button besides board
o Undo move button
o Piece key for theme chess
o Maximizing window scales the board
• Piece icons
o Small icons for each piece

Example board graphic

Coding Practices
• Heavily comment code
• Descriptive variable names
• Schedule time each week to combine code and standardize method/variable names
• Revise efficiency

Timeline details
• Due date
• Start date
• Task description
• Reason assigned
• Status

Project Timeline
• Week 4: 9 – 9 – 09 to 9 – 16 – 09
o Code basic board
 Due date: 9 – 16 - 09
 Start date: 9 – 9 – 09
 Task description: outlined under program details
 Reason assigned: foundation, centerpiece of a chess game
 Status: assigned, Jonathan
o Code main window, file menu
 Due date: 9 – 16 - 09
 Start date: 9 – 9 – 09
 Task description: outlined under program details
 Reason assigned: simple beginning for the ui
 Status: assigned, Reshma
o Code chess pieces classes
 Due date: 9 – 16 - 09
 Start date: 9 – 9 – 09
 Task description: outlined under program details
 Reason assigned: Pieces’ methods are going to be accessed and interact with
many other classes so it must be done early
 Status: assigned, Krass
o Develop outline, timeline, update weekly
 Due date: 9 – 16 – 09, weekly
 Start date: 9 – 9 – 09
 Task description: Keep track of goal, program features and implementation
details
 Reason assigned: Important to keep the team functioning efficiently together
 Status: In progress, John
o Find chess piece icons
 Due date: 9 – 16 - 09
 Start date: 9 – 9 – 09
 Task description: simple 2d graphical representations of pieces
 Reason assigned: not a code dependent element
 Status: assigned, John
o Research chess ai, min-max trees, alpha-beta pruning
 Due date: 9 – 23 - 09
 Start date: 9 – 9 – 09
 Task description: necessary for implementing player vs computer in later
development
 Reason assigned: Need to understand background information. Implementation
decisions need to be made before coding begins.
 Status: assigned, everyone
• Week 5: 9 – 17 – 09 to 9 – 23 – 09
o Combine and standardize code
o Display piece on board in starting positions
o Implement save game, load game features
o Research and begin Qt network widget
• Week 6: 9 – 24 – 09 to 9 – 30 – 09
o Combine and standardize code
o Piece movement through click and drag
o Implement undo move function
o Work on min-max decision trees
• Week 7: 10 – 1 – 09 to 10 – 7 – 09
o Combine and standardize code
o Work on min-max decision trees
• Week 8: 10 – 8 – 09 to 10 – 14 – 09
o Combine and standardize code
o Work on min-max decision trees
o Implement alpha-beta pruning
• Week 9: 10 – 15 – 09 to 10 – 21 – 09
o Combine and standardize code
o Implement alpha-beta pruning
o Piece destruction animations
• Week 10: 10 – 22 – 09 to 10 – 28 – 09
o Combine and standardize code
o Implement alpha-beta pruning
o Piece destruction animations
• Week 11: 10 – 29 – 09 to 11 – 4 – 09
o Combine and standardize code
o Piece destruction animations
o Implement computer difficulty adjustment
• Week 12: 11 – 5 – 09 to 11 – 11 – 09
o Combine and standardize code
o Implement network play
o Implement computer difficulty adjustment
• Week 13: 11 – 12 – 09 to 11 – 18 – 09
o Combine and standardize code
o Implement computer difficulty adjustment
• Week 14: 11 – 19 – 09 to 11 – 25 – 09
o Combine and standardize code
o 3d conversion

You might also like