|
|
Line 1: |
Line 1: |
− | {{code}}
| + | <a href=http://www.sanalsokagi.net>dizi</a> <a href=http://www.sanalsokagi.net>dizi izle</a> <a href=http://www.sanalsokagi.net>dizi sitesi</a> <a href=http://www.sanalsokagi.net>Film</a> <a href=http://www.sanalsokagi.net>film izle</a> <a href=http://www.sanalsokagi.net>online film</a> <a href=http://www.sanalsokagi.net>dizi seyret</a> |
− | /* SimpleBoard.java */
| |
− |
| |
− | /**
| |
− | * Simple class that implements an 8x8 game board with three possible values
| |
− | * for each cell: 0, 1 or 2.
| |
− | *
| |
− | * DO NOT CHANGE ANY PROTOTYPES IN THIS FILE.
| |
− | **/
| |
− |
| |
− | public class SimpleBoard {
| |
− | private final static int DIMENSION = 8;
| |
− | private int[][] grid;
| |
− |
| |
− | /**
| |
− | * Invariants:
| |
− | * (1) grid.length == DIMENSION.
| |
− | * (2) for all 0 <= i < DIMENSION, grid[i].length == DIMENSION.
| |
− | * (3) for all 0 <= i, j < DIMENSION, grid[i][j] >= 0 and grid[i][j] <= 2.
| |
− | **/
| |
− |
| |
− | /**
| |
− | * Construct a new board in which all cells are zero.
| |
− | */
| |
− |
| |
− | public SimpleBoard() {
| |
− | grid = new int[DIMENSION][DIMENSION];
| |
− | }
| |
− |
| |
− | /**
| |
− | * Set the cell (x, y) in the board to the given value mod 3.
| |
− | * @param value to which the element should be set (normally 0, 1, or 2).
| |
− | * @param x is the x-index.
| |
− | * @param y is the y-index.
| |
− | * @exception ArrayIndexOutOfBoundsException is thrown if an invalid index
| |
− | * is given.
| |
− | **/
| |
− |
| |
− | public void setElementAt(int x, int y, int value) {
| |
− | grid[x][y] = value % 3;
| |
− | if (grid[x][y] < 0) {
| |
− | grid[x][y] = grid[x][y] + 3;
| |
− | }
| |
− | }
| |
− |
| |
− | /**
| |
− | * Get the valued stored in cell (x, y).
| |
− | * @param x is the x-index.
| |
− | * @param y is the y-index.
| |
− | * @return the stored value (between 0 and 2).
| |
− | * @exception ArrayIndexOutOfBoundsException is thrown if an invalid index
| |
− | * is given.
| |
− | */
| |
− |
| |
− | public int elementAt(int x, int y) {
| |
− | return grid[x][y];
| |
− | }
| |
− |
| |
− | /**
| |
− | * Returns true if "this" SimpleBoard and "board" have identical values in
| |
− | * every cell.
| |
− | * @param board is the second SimpleBoard.
| |
− | * @return true if the boards are equal, false otherwise.
| |
− | */
| |
− |
| |
− | public boolean equals(Object board) {
| |
− | if (board.getClass() == this.getClass()) {
| |
− | return (this.hashCode() == board.hashCode());
| |
− | } else {
| |
− | return false;
| |
− | }
| |
− | }
| |
− |
| |
− | /**
| |
− | * Returns a hash code for this SimpleBoard.
| |
− | * @return a number between Integer.MIN_VALUE and Integer.MAX_VALUE.
| |
− | */
| |
− |
| |
− | public int hashCode() {
| |
− | int hash = 0;
| |
− | for (int io=0; io<DIMENSION; io++) {
| |
− | for (int ii=0; ii<DIMENSION; ii++) {
| |
− | hash = hash * 3 + grid[io][ii];
| |
− | }
| |
− | }
| |
− | return hash;
| |
− | }
| |
− | }
| |