Biztos mindenkinek feltűnt már, hogy a demokazettás Bomberben nem túl szép, hogy ha ledobunk egy bombát, egy pillanatra eltűnik a repülő első karaktere. Ez akkor a legzavaróbb, ha pont közvetlen a repülő alatt van a ház, amit lebombáztunk, mert a ház omlása közben végig hiányzik a repülő orra, hiszen a bomba mozgatása még nem jutott el a következő fázisba. Azt hiszem, már korábban is ki akartam ezt javítani, de valahogy nem tűnt annyira egyszerűnek, mint elsőre gondolnánk. Azt mondaná az ember, eggyel lejjebb kell kezdeni a bomba kirajzolását és kész, de nem ilyen egyszerű. A bomba kirajzolása valóban is a repülő alatt kezdődik, de a bomba letörlése a már szükségtelen helyről esés közben, az mindig az eggyel felette lévő karakterre vonatkozik.
370 IF JOY(0)>15 AND BOMBY=0 OR JOY(1)>15 AND BOMBY=0 THEN
380 LET BOMBX=J+1:LET BOMBY=I
390 SOUND PITCH 60,LEFT 63-J*1.7,RIGHT J*1.7,ENVELOPE 1,SOURCE 2,DURATION 500
400 END IF
410 IF BOMBY>0 THEN CALL BOMB
A BOMB eljárás először letörli a bombát onnan, ahol van, utána 1-gyel megnöveli a függőleges koordinátáját és kirajzolja az újabb helyre a bombát:
800 DEF BOMB
810 PRINT AT BOMBY,BOMBX:" ";
820 LET BOMBY=BOMBY+1
...
990 END DEF
A 810-es sor a ludas. Ha töröljük, nem tűnik el a repülő eleje, viszont a bomba csíkot húz maga után. Megoldás, csak akkor tegyen szóközt, ha a legelső fázison már túl van a bomba. Ez egy IF-fel könnyen megoldható. Viszont az IF lassít a program futásán, és a bomba esése közben minden fázisban megnézné, igaz-e a feltétel, még lassabb lenne a játék.
Más lehetőség viszont nem nagyon van, mert amikor a repülő a legalsó sorban van és mégis dobni próbálunk bombát, akkor a szóközt a földbe rakná bele.
Lehet, a program elvét kéne kicsit átírni. Sosem értettem, hogy a demokazettán miért így van megoldva, ami nem elegáns, biztos meg lehetne oldani máshogy is.