show:
LOCATE 2 * i, 5*j kcol = fld<i, 3) IF kcol > 8 THEN
COLOR 12: PRINT "I";
ELSE
IF kcol > 0 THEN
COLOR kcol - 1: PRINT USING "#"; kcol;
ELSE
PRINT " ";
END IF LOCATE 23, 1: PRINT count%;
END IF RETURN
7.8. ИГРА «СОЛИТЕР»
Файл SOLIT.BAS
'загрузка подпрограммы для мыши
DIM mymoused TO 19) AS INTEGER
DATA 6H50, &H53, 6H51, 6H52, &H1E, &HOE, &H1F, ЬНА1, &H1E, &HOO
DATA SHCD, &H33, &H89, &H1E, 6H20, &HOO, &H89, 6HOE ,6H22 ,&HOO
DATA SH89, &H16, &H24, &HOO, &H1F, &H5A, &H59, SH5B, 6H58, SHCB
DEF SEG = VARSEG(mynouse(l))
mouseptr& = VARPTR(mymouse(1))
FOR i% = 0 TO 29
READ codet
POKE mouseptr& + i%, codet NEXT i%
'раздача карт SCREEN 0 WIDTH 80, 43
DIM a(l ТО 7) AS STRING * 7 DIM stacks<1 TO 13, 1 TO 52) AS INTEGER DIM ptrsd TO 13) AS INTEGER empty$ = CHR$(249) + SPACE$(5) + CHR$(249) odd$ = CHR$(219) + CHR$(176) + CHR$ (219) + CHR$ (176) + CHR$(219) + CHR$(176) + CHR$(219)
even$ = CHR$(176) + CHR$(32) + CHR$ (176) + CHR$ (32) + CHR$ (176) + CHR$(32) + CHR$(176) COLOR 0, 2 CLS FOR i% = 1 TO 52: stacks(13, i%) = -i%: NEXT i%
'колода упорядочена RANDOMIZE TIMER FOR i% = 1 TO 51
3% = IMT(BMD * (52 - i%)) + i%
IF i% 0 j% THEN
mnbr% = stacks(13, 3%): stacks(13, j%) = stacks(13, i%) stacks(13, i%) = mnbrt
END IF NEXT i% 'колода перетасована