hi every one...
i need some help from u..
i solved my assingment by my self an I need from u some help I will post my prgram and please check it if it need any edite or anything...
This is the mainClass
import java.util.*;
public class mainClass {
public static void main(String []args){
Scanner w = new Scanner(System.in);
System.out.println("Please enter the size of the array: ");
int size = w.nextInt();
Cell arr [][]=new Cell [size][size];
for (int a =0 ;a<size;a++){
for (int e =0 ;e<size;e++){
Cell f = new Cell();
f.initializeColor();
arr[a][e]=f;
}
}
displayArray(arr, size);
System.out.print("\n Enter the number ");
int x=w.nextInt();
System.out.print("\n Enter the second number ");
int y=w.nextInt();
int r= countCells(arr,x,y,size);
System.out.print("\n Enter the second number "+r);
//please implement the main method
}//end main
/*
*The method countCells is a RECURSIVE method whose job is to find
*how many cells are in the same blob as a given cell (i.e cell with
*specified coordinates x and y). The variable int size represents the
*size of the two-dimensional array. This value would have been provided
*by the user at the beginning of the main method.
*Do NOT make any changes to the method declartion.
*/
public static int countCells(Cell [][]cells,int x,int y,int size){
Cell r=new Cell();
if(x <0 || x>=size || y<0 || y >= size)
return 0;
else if (cells[x][y].getColor().equals(r.normal) || cells[x][y].getColor().equals(r.temp))
return 0;
else
{
cells[x][y].setColor(r.temp);
return 1
+ countCells(cells, x - 1, y + 1, size ) + countCells(cells, x, y + 1, size )
+ countCells(cells, x + 1, y + 1, size ) + countCells(cells, x - 1, y, size )
+ countCells(cells, x + 1, y, size ) + countCells(cells, x - 1, y - 1, size )
+ countCells(cells, x, y - 1, size ) + countCells(cells, x + 1, y - 1, size );
}
}//countCells()
/*
* The method diplayArray is provided for you to call when you want to
* display your array on the screen. You should know how and when to
* to use this method in your program by looking at its declaration and
* the expected output.Do NOT make any changes to this method.
*/
public static void displayArray(Cell [][]cells,int size){
for(int i=0;i<size;i++){
System.out.println();
System.out.print("-");
for(int j=0;j<size;j++){
System.out.print("-+");
}
System.out.println();
for (int j=0;j<size;j++){
String color=cells[i][j].getColor();
System.out.print("|"+color.charAt(0));
}
System.out.print("|");
}//outer
System.out.print("\n-");
for(int j=0;j<size;j++){
System.out.print("-+");
}
}//end displayArray()
}//end mainClass
This is th Cell
public class Cell implements Interface1{
private String color;
/*Please implement this class. Remember this class
* must implement all the methods declared in the interface
* Interface1.
*/
public String getColor() {
// TODO Auto-generated method stub
return color;
}
public void initializeColor() {
// TODO Auto-generated method stub
double a =Math.random()*10;
if(a<7.0)
color=normal;
else
color= abnormal;
}
public void setColor(String color) {
// TODO Auto-generated method stub
this.color=color;
}
}
This is th interface ,
/**
* Interface1 defines some constants and declares
* some methods that must be implemented by the
* class "Cell". The purpose of each method is
* described below. Note the statement that says
* public class Cell implements Interface1
*/
public interface Interface1 {
final String normal="white";
final String abnormal="green";
final String temp="red";
/**
* Method initializeColor will be used to initialize the color
* of each cell in the two-dimensional array.
* The cell can be one of two colors: "green" or "white". Whether
* a cell will be "white" or "green" should be decided randomly.
* Since the assignment specifies that there should be more normal
* (white) cells than abnormal (green) cells, you should devise an
* algorithm that assigns:
* white: 70% of the time
* green: 30% of the time
* (hint:you can use Math.random() for this purpose)
*/
public void initializeColor();
/**
* The method setColor is a typical setter method that
* sets the color of a given cell to a certain color.
* This method is needed especially to re-color a cell
* to a temporary color (i.e "red")
*/
public void setColor(String color);
/**
* The method getColor will return the color of the
* specified cell. This method is called to identify
* the color of the cell.
*/
public String getColor();
}