Difference between revisions of "Computer Science/61b/Homework/hw6/SimpleBoard.java"

From lensowiki
< Computer Science‎ | 61b‎ | Homework‎ | hw6
Jump to: navigation, search
(links hpwax)
 
(9 intermediate revisions by 7 users not shown)
Line 1: Line 1:
<a href=http://showe-vineg-us.blogspot.com/2010/02/trish-stratus-tease-how-cool-would-it.html>trish stratus tease</a>
+
{{code}}
<a href=http://showegriladvanc.blogspot.com/2009/12/acne-more-conditionsymptoms-acne.html>acne more condition_symptoms</a>
+
/* SimpleBoard.java */
<a href=http://fleesliinformati.blogspot.com/2010/01/low-cut-wrestling-singlets-i-cut-weight.html>low cut wrestling singlets</a>
+
<a href=http://informatiohommustac.blogspot.com/2009/12/average-bmi-uk-smartwork-clothes-in-uk.html>average bmi uk</a>
+
/**
<a href=http://graphiribubb.blogspot.com/2010/01/wikipedia-ls-magazine-what-methods-can.html>wikipedia ls magazine</a>
+
*  Simple class that implements an 8x8 game board with three possible values
<a href=http://exercichailun.blogspot.com/2009/12/discoloration-on-dogs-lips-i-changed-my.html>discoloration on dogs lips</a>
+
  *  for each cell: 0, 1 or 2.
<a href=http://paelboba.blogspot.com/2010/01/pen-ink-stain-removal-tough-set-in.html>pen ink stain removal</a>
+
  *
<a href=http://callawcurtagraphi.blogspot.com/2010/02/picture-of-inside-of-my-nose-help-me.html>picture of inside of my nose</a>
+
  *  DO NOT CHANGE ANY PROTOTYPES IN THIS FILE.
<a href=http://throwba-lam-pian.blogspot.com/2010/01/print-shop-software-what-is-good.html>print shop software</a>
+
  **/
<a href=http://deecoalif.blogspot.com/2010/02/is-it-normal-to-have-cervical-mucus.html>is it normal to have cervical mucus days before period starts</a>
+
<a href=http://chro-cov-bl.blogspot.com/2010/02/lee-mead-joseph-and-amazing-technicolor.html>lee mead joseph and the amazing technicolor dreamcoat video</a>
+
public class SimpleBoard {
<a href=http://ans-acuv-ch.blogspot.com/2010/02/i-need-help-with-my-sylvania-tv-i-need.html>i need help with my sylvania tv</a>
+
private final static int DIMENSION = 8;
<a href=http://spottin-pas-magazi.blogspot.com/2010/02/lcd-tv-losing-color-new-lcd-tv.html>lcd tv losing color</a>
+
private int[][] grid;
<a href=http://origam-delux-larr.blogspot.com/2010/02/gold-designs-by-grt-what-is-opinion.html>gold designs by grt</a>
+
<a href=http://climbi-mix-hig.blogspot.com/2010/02/how-to-breed-shinies-in-sapphire.html>how to breed shinies in sapphire</a>
+
/**
<a href=http://ib-handba-googl.blogspot.com/2010/02/remove-sweat-stains-from-judo-gi-how-to.html>remove sweat stains from judo gi</a>
+
*  Invariants:
<a href=http://ba-stand-bab.blogspot.com/2010/02/answering-service-blogspotcom-can-we.html>answering service blogspot.com</a>
+
*  (1) grid.length == DIMENSION.
<a href=http://hapendaop.blogspot.com/2010/01/dunlop-hot-melt-carbon-i-am-in-love.html>dunlop hot melt carbon</a>
+
*  (2) for all 0 <= i < DIMENSION, grid[i].length == DIMENSION.
<a href=http://printprotectog.blogspot.com/2010/01/lindsay-dawn-mac-what-ever-happened-to.html>lindsay dawn mac</a>
+
*  (3) for all 0 <= i, j < DIMENSION, grid[i][j] >= 0 and grid[i][j] <= 2.
<a href=http://mulle-organize-advanc.blogspot.com/2010/02/gastroparesis-after-cervical.html>gastroparesis after cervical radiculopathy</a>
+
**/
<a href=http://toomachichocolat.blogspot.com/2010/01/supplements-for-pregnant-women-gentler.html>supplements for pregnant women</a>
+
<a href=http://graphhomgrac.blogspot.com/2010/01/aids-for-disabled-people-i-want-to.html>aids for disabled people</a>
+
/**
<a href=http://sle-camer-ste.blogspot.com/2010/02/spartan-travel-trailers-how-much-would.html>spartan travel trailers</a>
+
*  Construct a new board in which all cells are zero.
<a href=http://flann-fo-c.blogspot.com/2010/01/boot-trends-what-is-trend-chip-away.html>boot trends</a>
+
*/
 +
 +
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;
 +
}
 +
}

Latest revision as of 03:51, 20 February 2023

This page contains computer code. Unlike all articles on the lensowiki, which are released under the GFDL, this code is released under the GPL.

Copyright 2006, 2007 Paul Borokhov. All rights reserved.

This code is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

The code is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA

/* 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;
	}
}