CANVAS 32,24,"TYPING";
INT AB[24], HI=0;
FOR;
SC=0;
ARYSET AB,0,24,0;
CLS@ 0;
FOR T=0,999999;
IF T%5==0 THEN
SCROLL@ 32,22,0,1,0,1,1;
ARYMOVE AB,1,0,23;
AB[1]=RND(26)+65;
PRINT@ RND(32),1,2,0,"%c",AB[1];
FI;
PRINT@ 8,0,7,0,"SCORE:%05d HIGH:%05d",SC,HI;
I=UPPER(INKEY@WR(100));
IF I!=0 THEN
SC--;
FOR J=23,0,-1;
IF AB[J]==I THEN
AB[J]=0;
SC+=11;
HI=MAX(HI,SC);
CHARBOX@ 32,1,0,J,0,0,0;
BREAK;
FI;
NEXT;
FI;
IF AB[23]!=0 BREAK;
NEXT;
WAITKEY@ 10;
NEXT;
| 0:黒 | 1:青 | 2:みどり | 3:水色 | 4:赤 | 5:むらさき | 6:黄色 | 7:白 |
| 0:空白 | 1:四角 | 2:丸 | 3:バツ | 4:よこぼう | 5:たてぼう | 6:顔マーク | 7:ひしがた | 8:ななめせん | 9:ななめせん |
hlx>run typing.txt
#include <acl.c>
void aMain()
{
int i, j, t, sc, hi = 0, ab[24];
AWindow *w = aOpenWinEx(32, 24, "TYPING", 0);
for (;;) {
sc = 0;
aArySetInt(ab, 0, 24, 0);
aCls(w, 0);
for (t = 0;; t++) {
if (t % 5 == 0) {
aScroll(w, 32, 22, 0, 1, 0, 1, 1, 0, 0, 0);
aAryMovInt(ab, 1, 0, 23);
ab[1] = 'A' + aRnd(26);
aGrPrintf(w, aRnd(32), 1, 2, 0, "%c", ab[1]);
}
aGrPrintf(w, 8, 0, 7, 0, "SCORE:%05d HIGH:%05d", sc, hi);
i = aUppercase(aInkey_waitR(w, 100));
if (i != 0) {
sc--;
for (j = 23; j >= 0; j--) {
if (ab[j] == i) {
ab[j] = 0;
aEchBox(w, 32, 1, 0, j, 0, 0, 0);
hi = aMaxInt(hi, sc += 11);
break;
}
}
}
if (ab[23] != 0) break;
}
aWaitKey(w, AKEY_ENTER);
}
}hlx>run typing.c
| コメント | お名前 | NameLink | |