Приложения______________________________________251

isrc% = ist%: jsrc% = jst%: mark% = 1 imark% = 8 * ist% + 1: jmark% = 2 IF ist% < 8 THEN

jmark% = jmark%-ptrs(ist%) + jst% + ipos% - 1 ELSE

IF ist% < 9 THEN

imark% = 1 ELSE

imark% = imark% - 8

IF ist% > 10 THEN imark% •= imark% - 16: jmark% = 10 END IF END IF LOCATE jmark%, imark%: COLOR 14, 2: PRINT CHR$ (26) ;

'метка источника

DO 'чтение адреса приемника ок% = о

GOSUB readpos

IF jst% > 0 THEN 'проверка корректности хода old% = stacks (ist%, ptrs(ist%)) SELECT CASE ist% CASE 1 TO 7

IF (new%-l)\26 0 (old%-l)\26 THEN

'если цвета разные, то

IF (new%-l) MOD 13 = (old%-l) MOD 13-1 THEN OK% = 1 END IF CASE 9 TO 12

IF new% = old% + 1 THEN OK% = 1 END SELECT ELSE

IF ist% > 8 THEN

IF (newt - 1) MOD 13 = 0 THEN OK% = 1 ELSE

IF (newt - 1) MOD 13 = 12 THEN OK% = 1 END IF END IP

IF OK% = 1 THEN 'вариант корректного хода temp% = ptrs(isrc%): ptrs(isrc%) = jsrc%-l ers% = 0 FOR ic% = jsrc% TO temp%

ptrs(ist%) = ptrs(ist%) + 1

stacks(ist%, ptrs(ist%)) = stacks(isrc%, jsrc%) jsrc% = jsrc% + 1: ers% = ers% + 1 NEXT ic%

mymouse(16) = 2 'спрятать курсор CALL absolute (mouseptrS.)

ish% = ist%: GOSUB showcards 'показ стопок ish% = isrc%: GOSUB showcards COLOR 2, 2 row% = row% + 6 FOR jc% = 1 TO erst row% = row% + 1 LOCATE row%, dmn% PRINT " " NEXT jc%