Чувак, еще раз.
По-моему, тебе все-таки нужно условие (q>x) and (q<x+19) and (u>38 ) and (u<43).
Делай так:
procedure bombarding;
begin
if (q>x) and (q<x+19) and (u>38 ) and (u<43) then
begin
q:=50;
u:=0;
aaaaaaa;
end;
end;
А то ты сначала
присваиваешь u значение "0", а потом
проверяешь, лежит ли u в интервале [38,43]. Это бессмысленно.
PS: Рискуешь попасть в мемы.