Temat może luźniej związany z webmasterką, ale myślę, że można go tu podciągnąć

Na programowanie do szkoły mam do napisania (niestety w Javie) prostą grę, którą chyba każdy zna - Węża.
Wszystko fajnie poszło, większych błędów w działaniu nie widzę, chociaż grę dopiero testuję, jednak mam problem jak mi się wydaje z optymalizacją kodu.
Z początku gra działa ładnie, w miarę płynnie. Niestety po zjedzeniu ~8 monet (a co za tym idzie wydłużeniem się węża) zaczyna migać ekran,
tzn. wszystko znika i mija chwila zanim obraz pojawi się od nowa. Mierzyłem czasy poszczególnych operacji i nie zauważyłem nigdzie wąskiego gardła.
W pierwszej wersji pozycje węża przechowywane było w tablicy i obrabiane potem pętlą for. Dawało to lepsze wyniki w testach szybkości, ale tylko
na początku, kiedy wąż miał kilka klocków. Przy dłuższym wężu lepiej sprawdza się obecne rozwiązanie oparte o stringi.
Java nie jest moją najmocniejszą stroną, dlatego zwracam się do Was z prośbą o pomoc.
Po pierwsze: z czego się ten problem bierze?
Po drugie: w jaki sposób mogę zoptymalizować jeszcze kod, żeby efekt migającego ekranu wyeliminować?
KOD PROGRAMU:
-> http://www.wklejto.pl/204183
Jako, że to projekt do szkoły, na który miałem niecałe 3 dni, a na codzień z Javą mam niewiele wspólnego, więcej uwagi skupiłem na tym,
żeby to w ogóle działało jak należy i żeby w grze nie było bugów, niż na pięknym kodzie i dobrych praktykach. Kod okomentowany, myślę,
że da się w nim połapać.
Liczę na pomoc specjalistów

Pozdrawiam.