sarthak wrote
The snake game works fine. But if I let it run for sometime (for about a minute) it shows following error:
Program Halted: Heap Overflow.
Your game has a "memory leak". Snake.Advance() keeps doing
let prsntMove = Array.new(length);
but never calls
do prsntMove.dispose();
This means that every time Advance() is called, a new instance of prsntMove is allocated from the heap and that memory is gone forever. Eventually you run out of heap.
Note: although not needed in your current game, all classes that create objects in their constructors should have a
destructor ("method dispose()" in Jack) that destroys those objects. Class Snake shoud get:
method void dispose() {
do x.dispose();
do y.dispose();
do Mov.dispose();
return;
}
--Mark