# OOP

• November 29th, 2009, 07:43 PM
mgutierrez19
OOP
Just need help getting this class started if anyone can help me out please

• Object NaiveWorld that inherits from World:
o Attributes: no more than in the parent class World
o Methods:
 Constructors
 Accessors / mutators (inherits from parent class World)
 naiveEvolutionIndividual: takes a NaiveWorld and the location of an individual in this NaiveWorld (a pair (i,j)) and returns an Individual:
What this method does is that:
• If the sum S of levels of gentleness of the individual at (i,j) + of all its surrounding individuals is positive and the individual at (i,j), say P, is bad (i.e., gentleness < 0), then P becomes good (i.e., its gentleness level is now = S);
• If the sum S of levels of gentleness of the individual at (i,j) + of all its surrounding individuals is negative and the individual at (i,j), say P, is good (i.e., gentleness > 0), then P becomes bad (i.e., its gentleness level is now = S);
• Otherwise, P, the individual at (i,j), remains unchanged.
Note: there can be between 3 – case of a corner, and 6 – case of an internal individual – surrounding individuals.
 naïveEvolutionRC: this method takes a NaiveWorld, NW, and an integer, r, (the number of times the evolution is going to repeat), and does the following:
• For r repeats:
o For all rows
 For each element of the current row
• Calls naiveEvolutionIndividual and NW is now the current NW in which the current individual is the result of naiveEvolutionIndividual
Note: this method ranges on rows first and then columns, hence the RC part of its name.
 naïveEvolutionCR: this method takes a NaiveWorld, NW, and an integer, r, (the number of times the evolution is going to repeat), and does the following:
• For r repeats:
o For all columns
 For each element of the current column
• Calls naiveEvolutionIndividual and NW is now the current NW in which the current individual is the result of naiveEvolutionIndividual
Note: this method ranges on columns first and then rows, hence the CR part of its name
• November 29th, 2009, 08:32 PM
helloworld922
Re: OOP
This will get you started:
Code :

```public class NaiveWorld extends World { // your code goes here }```
• November 29th, 2009, 09:10 PM
mgutierrez19
Re: OOP
I started that and thats all I have i dont know what to put in for the code.
this is the class world
Code :

```import java.io.*;   public class World { private int size; private Individual[][] myWorld; private Random numGen = new Random();   /** * This is the default constructor that creates a World of one element holding one default Individual. * * @since 1.6 */ public World() { this.size = 1; this.myWorld = new Individual[1][1]; for( i = 0; i < myWorld.length, i++) { for( j = 0, j < myWorld[0].length, j++) { this.myWorld[i][j] = Individual() } } }//end constructor   /** * This constructor creates a World to the given size filled with the given amount of good Individuals, or Individuals with a postive gentleness. * The remaining spaces left in the world are filled with bad Individuals, or Individuals with a negative gentleness. * * @param n is the size of the world to create. * @param g is the number of good Individuals to put into the world. * @since 1.6 */ public World(int n, int g) { this.size = n; this.myWorld = new Individual[sqrt(n)][sqrt(n)]; int b = (n^2) - g;   for(i = 0, i < g, i++) { Individual goodGuy = new Indivdual(numGen.nextInt(100), numGen.nextInt(100)); myWorld[numGen.nextInt(sqrt(n))][numGen.nextInt(sqrt(n))] = goodGuy; } for(j = 0, j < b, j++) { Individual badGuy = new Individual(numGen.nextInt(100), (numGen.nextInt(100) * -1)); myWorld[numGen.nextInt(sqrt(n))][numGen.nextInt(sqrt(n))] = badGuy; } }//end constructor   /** * This constructor creates a World filled with Individuals based on the data in the given file. * * @param fileName is the file to gather the information about the world to be created. * @since 1.6 */ public World(String fileName) { Scanner inFile = new Scanner(new FileReader("fileName"));   this.size = inFile.nextInt();   this.myWorld = new Individual[sqrt(this.size)][sqrt(this.size)];   for(i = 0, myWorld.length, i++) { for(j=0, myWorld[0].length, j++) { myWorld[i][j] = new Individual(numGen.nextInt(100), inFIle.next()); } } inFile.close() }//end constructor   /** * This accessor method returns the current size of the World. * * @since 1.6 */ public void getSize() { return this.size; } end accessor   /** * This accessor method returns a textual representation of the World. * * @since 1.6 */ public void printWorld() { int counter = 0;   for(i = 0, i < sqrt(this.size), i++) { for (j = 0, j < sqrt(this.size), j++) { myWorld[i][j].printIndividual(); System.out.print(" "); counter++; if(counter > sqrt(this.size)) { System.out.println(); counter = 0; } }//end method   /** * This method returns the current number of good Individuals in the world. * * @since 1.6 */ public int countsGood() { int goodCount = 0;   for(i = 0, i < sqrt(this.size), i++) { for (j = 0, j < sqrt(this.size), j++) { if(myWorld[i][j] > 0) goodCount++; } return goodCount; }//end method   /** * This method returns the current number of bad Individuals in the world. * * @since 1.6 */ public int countsBad() { int bad count = 0;   for(i = 0, i < sqrt(this.size), i++) { for (j = 0, j < sqrt(this.size), j++) { if(myWorld[i][j] < 0) badCount++; } return badCount; }//end method }//end World object```