Цікавою особливістю ZX BASIC є те, що номер рядка можна взяти зі змінної або виразу:
Код: Виділити все
GO TO 7*(k$="")
У інших діалектах схожий ефект досягається за допомогою операторів ON ... GOTO та ON ... GOSUB.
Модератор: Nick
Код: Виділити все
GO TO 7*(k$="")
Код: Виділити все
1k$=INKEY$
2u=u+(k$="a"ANDu>28)-(k$="d"ANDu<228):v=v+(k$="w"ANDv>28)-(k$="s"ANDv<228)
3x=x+(k$="j"ANDx>28)-(k$="l"ANDx<228):y=y+(k$="i"ANDy>28)-(k$="k"ANDy<228)
Код: Виділити все
0DEFFNK(P,A$,B$)=P+(k$=A$ANDP>28)-(k$=B$ANDP<228)
1k$=INKEY$:u=FNK(u,"a","d"):v=FNK(v,"w","s"):x=FNK(x,"j","l"):y=FNK(y,"i","k")
Код: Виділити все
0 SCREEN2:FORI=1TO8:READX:A$=A$+CHR$(X):NEXT:SPRITE$(0)=A$
1 DATA&B00111100
2 DATA&B01111110
3 DATA&B11111111
4 DATA&B11111111
5 DATA&B11111111
6 DATA&B11111111
7 DATA&B01111110
8 DATA&B00111100
Код: Виділити все
0 SCREEN2:FORI=1TO4:READX:A$=CHR$(X)+A$+CHR$(X):NEXT:SPRITE$(0)=A$
1 DATA&B11111111
2 DATA&B11111111
3 DATA&B01111110
4 DATA&B00111100
Код: Виділити все
0 FORI=1TO8:READX:A$=A$+CHR$(X):B$=CHR$(X)+B$:NEXT:SPRITE$(0)=A$:SPRITE$(1)=B$
1 DATA&B00011000
2 DATA&B00011000
3 DATA&B00111100
4 DATA&B01111110
5 DATA&B11111111
6 DATA&B00011000
7 DATA&B00111100
8 DATA&B01111110
0 □□□□□□□□□□□□□□□□ 0 0 □□□□□□□□□□□□□□□□ 0 0 □□□□□□□□□□□□□□□□ 0 0 □□□□□□□□□□□□□□□□ 0 255 ■■■■■■■■■■■□■■■■ 239 255 ■■■■■■■■■■■□■■■■ 239 0 □□□□□□□□□□□□□□□□ 0 0 □□□□□□□□□□□□□□□□ 0 0 □□□□□□□□□□□□□□□□ 0 0 □□□□□□□□□□□□□□□□ 0 0 □□□□□□□□□□□□□□□□ 0 0 □□□□□□□□□□□□□□□□ 0 0 □□□□□□□□□□□□□□□□ 0 0 □□□□□□□□□□□□□□□□ 0 0 □□□□□□□□□□□□□□□□ 0 0 □□□□□□□□□□□□□□□□ 0Він видається ідеальним для RLE-компресії: 4×0, 2×255, 14×0, 2×239, 10×0. Ми будемо кодувати дані як:
□□□□□□□■■■□□□□□□ □□□□□□□■■■□□□□□□ □□□□□□■■■■■□□□□□ □□□□□□■■■■■□□□□□ □□□□□□■□□□■□□□□□ □□□□□□■□□□■□□□□□ □□□□□□■□□□■□■□□□ □□□□□□■□□□■□■□□□ □□□□□■■■□■■■□□□□ □□□□□■■■□■■■□□□□ □□□□■■■■■■■■■□□□ □□□□■■■■■■■■■□□□ □□□■■■■■■■■■■■□□ □□□■■■■■■■■■■■□□ □□□■■□■■■■■■■■□□ □□□■■■■■■■■□■■□□ □□□□□□■■■■■□■■□□ □□□■■□■■■■■□□□□□ □□□□□□■□■□■□■■□□ □□□■■□■□■□■□□□□□ □□□□□□■■■■■■□□□□ □□□□□■■■■■■□□□□□ □□□□□■■■■■■■□□□□ □□□□□■■■■■■■□□□□ □□□□□■■■□■■■■□□□ □□□□■■■■□■■■□□□□ □□□□□■■■□□■■■□□□ □□□□■■■□□■■■□□□□ □□□□■■■□□□□□□□□□ □□□□□□□□□□■■■□□□ □□□□■■■□□□□□□□□□ □□□□□□□□□□■■■□□□Якщо деякі байти збігаються з відповідними у попередньому спрайті, ми кодуємо дані як: