в объеме программы отображения игрового
Совет 3 (Си, Паскаль)
Некоторая экономия в объеме программы отображения игрового поля достигнута за счет использования окна вывода (window). Задавая нужные значения констант (хО, уО), можно переместить игровое поле в другое место экрана.
Программа 4_12.bas
DECLARE SUB STEP3450
DECLARE SUB RESULT(s$)
DECLARE SUB CURIND(cur%,porog%,dcur%,dind%)
DECLARE SUB SHOW(k%,c%)
DECLARE SUB USER()
DECLARE FUNCTION XOD!(k%,kl%)
DEFINT A-Z
DIM SHARED POS1(1 TO 18) AS INTEGER,lines(0 TO 23) AS INTEGER
DIM SHARED A(l TO 9) AS INTEGER,b(l TO 9) AS INTEGER
DIM SHARED x0 AS INTEGER,у0 AS INTEGER
DIM SHARED Ind AS INTEGER,CurX AS INTEGER,CurY AS INTEGER
FOR k=l TO 9: A(k)=0: NEXT k
DATA 3,1,1,1,5,3,1,7,3
FOR k=l TO 9: READ b(k): NEXT k x0=l: y0=l
DATA 3,2, 7, 2, 11, 2, 3,4,
7, 4, 11, 4,3, 6, 7, 6, 11, 6
FOR k=l TO 18: READ POSl(k): NEXT k
DATA 1,2,3,4,5,6,7,8,9,1,4,7,
2,5,8,3,6,9,1,5,9,3,5,7
FOR k=0 TO 23: READ lines(k): NEXT k
CLS
SHOW 5,2 ' Первый ход программы
USER ' Ввод 1-го хода игрока
FOR J=l TO 9 ' Второй ход программы
IF A(J)=-2 THEN SHOW b(J),2: EXIT FOR NEXT J
m2: USER ' Ввод последующих ходов игрока
STEP345 ' Последующие ходы программы
GOTO m2 END
DEFSNG A-Z
SUB CURIND(cur%,porog%,dcur%,dind%)
IF curoporog THEN cur=cur+dcur: Ind=Ind+dind END SUB
DEFSNG A-Z SUB RESULT(s$)
LOCATE 1,40: PRINT s$: END END SUB
DEFINT A-Z
SUB SHOW(k%,C%) DEFINT A-Z CLS
LOCATE x0,y0: PRINT "+-------------------+"
LOCATE x0+l,y0: PRINT "| | | |"
LOCATE x0+2, y0: PRINT " |-----|-----|-----| "
LOCATE x0+3,y0: PRINT "| | | |"
LOCATE x0+4,y0: PRINT "|-----|-----|-----|"
LOCATE x0+5,y0: PRINT "| | | |"
LOCATE x0+6,y0: PRINT "+-----+-----+-----+"
A(k%)=c% FOR J=l TO 9
LOCATE y0-l+POSl(J*2),x0-1+POSl(J*2-l)
IF A(J)=2 THEN PRINT "X"
IF A(J)=-2 THEN PRINT "0" NEXT J
CurX=xO+6: CurY=y0+3: Ind=5 LOCATE CurY,CurX,l END SUB
SUB STEPS45 DEFINT A-Z
Содержание Назад Вперед