
var flag;
var s;
s=0;
flag = 0;
while (1){
lc(15, 23 - flag);
log(" ");
if (inkey() == 32){
flag = (flag + 1) % 2;
}
if (s == 0){
lc(30, 22 + rnd(2));
log("*");
s = 5;
}
scroll(3);
if (scr(15, 23 - flag) == 42){
lc(10, 11);
log("GAME OVER");
break;
}
lc(15, 23 - flag);
log("@");
s = s - 1;
sleep(100);
}

「if (scr(15, 23 - flag) == "*"){」の部分がバグになっているようですね。scr関数の返り値は文字コードなので「== "*"」ではなく「== 42」とするのが良いですね。