Program Purpose

Big Idea 1

Program Purpose and Function Our Program’s purpose is to play a succesful game of chess and declare a victor (or stalemate) and to allow the player to customize the game to a certain degree. The functions will be moving pieces, capturing pieces, recording captured pieces, customizing where the pieces are.

Big Idea 2

Data Abstraction One small example of a list would be the pieces that have been captured, they would be kept in a list in order to display as well as calculate the points a player has. Also, the moves a pieces can legally make would be in a list as well, actually in a dictionary which corresponds the moves and pieces. Also, there would be lists of pieces for definitions and the board would be defined as a list of corresponding letters and numbers as well.

Big Idea 3

Managing Complexity The list of possible moves helps to abstract the moves for each piece. In this way each piece instance can function the same way and only be specified by its defined characteristics. The board being defined as letter and number pairs also helps, as we will be able to add the number of squares a piece to the current place on the board in order to check.

Big Idea 4

Procedural Abstraction We will have many procedures. One might be calculating the possible moves based on the piece type and the current position. This will be abstracted further through a function to calculate the change in letter and number of the posititon and return the change in x and y.

Big Idea 5

Algorithm Implementation One algorithm we will use which will sequence, select and iterate is the algorithm to determine the possible moves. This will generate a list of options and return those options.

Big Idea 6

Testing We will be blogging the issues we encounter (probably in a google drive so we can all work together)