Приложения______________________________________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%