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% 'колода перетасована