.:: Bots United ::.

.:: Bots United ::. (http://forums.bots-united.com/index.php)
-   General Programming (http://forums.bots-united.com/forumdisplay.php?f=25)
-   -   Out of memory (http://forums.bots-united.com/showthread.php?t=1990)

Zacker 16-06-2004 22:09

Out of memory
 
The following java method/function causes the jvm to run out of memory:

public class Udforsk
{
//Obekter
//Kamp kamp = new Kamp();

//IO
//opret et Tastatur-objekt
Tastatur tast = new Tastatur();
int svar;

//
//opret et Sted-objekt
Sted sted = new Sted();

//Karakteregenskaber - fjende
String fjende_navn = "";
int fjende_styrke = 10;
int fjende_intelligens = 10;
int fjende_liv = 100;

public void udforsk()
{

//Sker der noget spændende?
if(Math.random()>0.5)
{
//Nope
System.out.println("Du finder intet interessant");
sted.skoven();
}
//Det gør der
else
{
if(Math.random()>0.5)
{
//Fjendetype 1
fjende_navn = "blåmejse";
fjende_styrke = 1;
fjende_intelligens = 2;
fjende_liv = 5;
}
else
{
//Fjendetype 2
fjende_navn = "ulv";
fjende_styrke = 6;
fjende_intelligens = 4;
fjende_liv = 30;
}
System.out.println("Du møder en" + fjende_navn);

//Er man opdaget?
if (Math.random()>0.5)
{
//Fjenden har ikke opdaget spilleren endnu,
//og man kan derfor nå at træffe et valg
System.out.println("Den har endnu ikke opdaget dig");
System.out.println("Hvad vil du?");
System.out.println("1 - Angribe");
System.out.println("2 - Flygte");

svar = tast.læsHeltal();

if(svar==1)
{
//kamp.angrib();
}
else if(svar==2)
{
//kamp.flygt();
}
else
{
System.out.println(svar + " er ikke et gyldigt svar");
}

}
//Fjenden har opdaget spilleren og angriber
else
{


}


}

}

}

botman 17-06-2004 00:12

Re: Out of memory
 
Does "Tastatur" or "Sted" create a "Udforsk" object (thus creating an infinite recursive loop)?

You probably shouldn't be "new"ing other objects inside Udforsk unless you know that those object (or objects created inside those objects, or objects created inside those objects created inside those objects, etc) don't wind up creating a Udforsk object (making it infinitely recursive).

botman

BAStumm 17-06-2004 00:23

Re: Out of memory
 
Bah infinite loops are no problem in linux!

Quote:

"We all know Linux is great...it does infinite loops in 5 seconds."
(Linus Torvalds about the superiority of Linux on the Amterdam
Linux Symposium)
:D

Zacker 17-06-2004 16:41

Re: Out of memory
 
Quote:

Does "Tastatur" or "Sted" create a "Udforsk" object (thus creating an infinite recursive loop)?
Yes one of them do. Changing that did not help, it still gives me the same silly error.

How do I access functions inside theese classes if I am not allowed to create a new instace of them?
As far as I know the only way to run methods from other classes is to do it this way.

Bert 17-06-2004 17:37

Re: Out of memory
 
You could use static methods so you don't actually need an instance of the class. Thjere seems nothing wrong with your code, though we don't have enough information ( also english comments/var names would be nice :)) .
Check you aren't creating objects in a loop when it isn't really needed.

sfx1999 20-06-2004 03:59

Re: Out of memory
 
Memory leak?


All times are GMT +2. The time now is 04:19.

Powered by vBulletin® Version 3.8.2
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.