Difference between revisions of "Computer Science/61b"
(→Gameboard & chips ADT: -bb – fix parameters for chip methods) |
(→Methods: -bb – updating in light of recent coding) |
||
Line 47: | Line 47: | ||
/* Andrew? */ | /* Andrew? */ | ||
// generates an array of Gameboards of all the possible moves from the current Gameboard g for a given player. returns an array of Gameboards | // generates an array of Gameboards of all the possible moves from the current Gameboard g for a given player. returns an array of Gameboards | ||
− | + | Object[][] generateMoves(Gameboard g, int color) | |
---- | ---- | ||
− | /* Paul | + | /* Paul */ |
− | // evaluates | + | // evaluates all possible moves to be generated from the '''this''' board using the minimax algorithm and alpha-beta pruning. |
− | // | + | // continues searching until it reaches '''depth''' or a win, whichever comes first |
− | Move evalTree( | + | Move evalTree(int color, int depth) |
---- | ---- | ||
− | /* Jordan | + | /* Jordan */ |
// evaluates the given network for a winning color | // evaluates the given network for a winning color | ||
− | // returns | + | // returns a probability of winning if there is no win |
− | // | + | // returns 999 if WHITE wins, -999 if BLACK wins |
int winner(Gameboard g) | int winner(Gameboard g) |
Revision as of 02:36, 29 October 2006
Contents
Project 2 modules
Members: Paul, -bb; Andrew, -fe; Jordan, -er
Gameboard & chips ADT
/* Paul can do this - it's a essentially a copy from the Oceans project, so it's quick */ // Gameboard abstract data type // board field stores a board using an array of Chips (not that important – no one has access to this field anyway) // methods are required to retrieve/store chips Gameboard class fields: private Chip[] board methods: // inserts a chip of the given color in the specified place as determined by an x, y coord pair // returns true if the insertion succeeds; false otherwise boolean insertChip(int color, int x, int y) // move a given chip to a specified place as determined by an x, y coord pair // returns true if the move succeeds; false otherwise boolean moveChip(Chip c, int x, int y) // performs a move and returns true/false depending on whether it succeeded boolean performMove(int color, Move m) // returns the Chip at a given location as determined by an x, y coord pair Chip retrieveChip(int x, int y) // returns true if the given move is valid; false otherwise boolean validMove(Move m) // returns true if the chip cluster (if any) is small enough to permit a chip insertion at the given location as determined by an x, y coord pair; false otherwise ->could be inside or another method: boolean checkClusterSize(int x, int y) // abstract data type to hold information about chips // color field stores the chip's color as a static final int; x and y fields store the chip's x and y coords, respectively Chip class fields (all private): int color, int x, int y public static final WHITE/BLACK = 1/0 methods: // returns the chip's color int getColor() // returns the x coord of the chip int getX() // returns the y coord of the chip int getY()
Changes to MachinePlayer class
New fields
int color int opponent int depth Gameboard board
Methods
/* Andrew? */ // generates an array of Gameboards of all the possible moves from the current Gameboard g for a given player. returns an array of Gameboards Object[][] generateMoves(Gameboard g, int color)
/* Paul */ // evaluates all possible moves to be generated from the this board using the minimax algorithm and alpha-beta pruning. // continues searching until it reaches depth or a win, whichever comes first Move evalTree(int color, int depth)
/* Jordan */ // evaluates the given network for a winning color // returns a probability of winning if there is no win // returns 999 if WHITE wins, -999 if BLACK wins int winner(Gameboard g)