So I'm having an infinite loop problem, but I simply cannot find out what/where it is.
I have an arrayList
called dailyPlanetStreet
filled with objects of either class
Goodguy Badguy Person or NormalGuy. In my removing mechanism below, if there is a normalguy/person on one side of the bad guy, i remove that person/normalguy.
If there is a normalguy/person on both sides, i randomly remove either one. Also,
everytime I remove one, I randomly move another person/normal guy from dailyplanetstreet to another arraylist called safety land.
Here is my current output:
normal guy
normal guy
person
badguy
normal guy
goodguy
normal guy
person
person
person
yo
normal guy
normal guy
person
badguy
goodguy
normal guy
person
person
person
Code:
import java.util.ArrayList;
public class GothamLikeAdventureTown
{
static int y=5;
static int x=3;
static ArrayList<Person> dailyPlanetStreet=new ArrayList<Person>();
static ArrayList<Person> safetyLand=new ArrayList<Person>();
static ArrayList<Person> unfortunatelyFatallyWoundedPeople=new ArrayList<Person>();
public static void rescue() {
int goodpos=0;
int randompos=(int)(Math.random()*dailyPlanetStreet.size());
for (int counter1=0; counter1<dailyPlanetStreet.size(); counter1++){
if (dailyPlanetStreet.get(counter1).name()!="Kent Clark") {counter1=goodpos;}
}
dailyPlanetStreet.add(randompos,dailyPlanetStreet.remove(goodpos));
}
public static void tosafety() {
int outer=12;
while (outer!=12){
int randompos=(int)(Math.random()*dailyPlanetStreet.size());
if ((dailyPlanetStreet.get(randompos).name()!="Clark Kent") && (dailyPlanetStreet.get(randompos).name()!="James Kalvin"))
{
safetyLand.add(dailyPlanetStreet.remove(randompos));
outer=12;
} }
}
public static void remove(int deletepos) {
unfortunatelyFatallyWoundedPeople.add(dailyPlanetStreet.remove(deletepos));
}
public static void display(){
System.out.println();
System.out.println();
for (int z=0; z<dailyPlanetStreet.size(); z++)
{
if (dailyPlanetStreet.get(z) instanceof BadGuy) System.out.println("badguy");
else if (dailyPlanetStreet.get(z) instanceof GoodGuy) System.out.println("goodguy");
else if (dailyPlanetStreet.get(z) instanceof NormalGuy) System.out.println("normal guy");
else if (dailyPlanetStreet.get(z) instanceof Person) System.out.println("person");
}
}
public static void main(String args[])
//code for putting in value of arraylist....
display();
while (dailyPlanetStreet.size()>2){
for (int counter=0; counter<dailyPlanetStreet.size(); counter++){
if (dailyPlanetStreet.get(counter).name()=="James Kalvin")
{
if ((counter==0) && (dailyPlanetStreet.get(1).name()=="Clark Kent")) {}
else if ((counter==0) && (dailyPlanetStreet.get(1).name()!="Clark Kent")) {System.out.println("yo"); remove(counter+1);display();rescue();}
else if ((counter==dailyPlanetStreet.size()-1) && (dailyPlanetStreet.get(dailyPlanetStreet.size()-2).name()=="Clark Kent")) {System.out.println("yo");display(); tosafety();rescue();}
else if ((counter==dailyPlanetStreet.size()-1) && (dailyPlanetStreet.get(dailyPlanetStreet.size()-2).name()!="Clark Kent")) {System.out.println("yo");remove(counter-1);display();tosafety();rescue();}
else if (dailyPlanetStreet.get(counter+1).name()=="Clark Kent") {System.out.println("yo");remove(counter-1);display();tosafety();rescue();}
else if (dailyPlanetStreet.get(counter-1).name()=="Clark Kent") {System.out.println("yo");remove(counter+1);display(); tosafety();rescue();}
else if ((dailyPlanetStreet.get(counter-1).name()!="Clark Kent")&& (dailyPlanetStreet.get(counter+1).name()!="Clark Kent"))
{
if (((int)(Math.random()*2))==1) {System.out.println("yo");remove(counter+1); display();tosafety();rescue();}
else {System.out.println("yo");remove(counter-1); display(); tosafety();rescue();}
}
}
}
System.out.println(dailyPlanetStreet.size());
}
System.out.println("hi");
}
}