回 帖 发 新 帖 刷新版面

主题:兄弟们看看这个问题啊!还有MOZ!!

我想编写一个英打练习的程序。以下代码是输出一行的大写字母或数字,然后从第二行照着上面的输入,不过有个问题,有时候位置会偏移,能不能试试,说说为什么

CLS
RANDOMIZE TIMER
DIM a$(36)
DIM s$(100)
FOR i = 1 TO 26
a$(i) = CHR$(64 + i)
NEXT i
FOR i = 1 TO 10
a$(26 + i) = CHR$(47 + i)
NEXT i
FOR i = 1 TO 80
s = INT(RND(5) * 36)
PRINT a$(s);
s$(i) = a$(s)
NEXT i
LOCATE 2, 1
FOR i = 1 TO 80
DO: k$ = INKEY$: LOOP UNTIL k$ <> ""
SELECT CASE k$
CASE CHR$(27)
END
CASE IS = s$(i)
COLOR 7
PRINT k$;
CASE ELSE
COLOR 4
PRINT k$;
END SELECT
NEXT i


这个程序执行了以后你跟着它输入,经常都会出问题,我实在不知道问题出在哪儿。所以希望大家帮我解决一下

回复列表 (共1个回复)

沙发

CLS
RANDOMIZE TIMER
DIM a$(36)
DIM s$(100)
FOR I = 1 TO 26
a$(I) = CHR$(64 + I)
NEXT I
FOR I = 1 TO 10
a$(26 + I) = CHR$(47 + I)
NEXT I
FOR I = 1 TO 80
s = INT(RND(5) * 36)
PRINT a$(s);
s$(I) = a$(s)
NEXT I
LOCATE 2, 1
I = 1
DO UNTIL I = 80
DO: k$ = INKEY$: LOOP UNTIL k$ <> ""
SELECT CASE k$
CASE CHR$(27)
END
CASE IS = s$(I)
I = I + 1
COLOR 7
LOCATE 2, I - 1
PRINT k$;
CASE CHR$(8)
I = I - 1
PRINT " "
CASE CHR$(0) TO CHR$(7), CHR$(9) TO CHR$(26), CHR$(28) TO CHR$(31), CHR$(127)
CASE ELSE
I = I + 1
LOCATE 2, I - 1
COLOR 4
PRINT k$;
BEEP
END SELECT
LOOP



有时候判断异常,不过还好用

我来回复

您尚未登录,请登录后再回复。点此登录或注册