EXIT FUNCTION END IF NEXT
IF XOD(2,2)=1 THEN RESULT "Победа компьютера": END
IF XOD(-2,2)=1 THEN EXIT SUB
FOR J=l TO 9
IF A(J)=0 THEN SHOW J,2: EXIT FOR
NEXT J END SUB
DEFSNG A-Z
SUB USER
DEFINT A-Z
Left=75: Right=77: Up=72: Down=80: Enter=13 k=0:
FOR J=l TO 9: k=k+ABS(A(J)): NEXT J IF k=18 THEN RESULT "Боевая ничья": END
m: ch$=INKEY$:
IF LEN(ch$)=0 THEN GOTO m
SELECT CASE ASC(RIGHTS(ch$,1))
CASE Left: CURIND CurX,3,-4,-l
CASE Right: CURIND CurX,ll,4/l
CASE Up: CURIND CurY,2,-2,-3
CASE Down: CURIND CurY,6,2,3
CASE Enter:
IF A(Ind)=0 THEN SHOW Ind,-2:
EXIT SUB
CASE ELSE: BEEP END SELECT
LOCATE y0-l+CurY,x0-l+CurX,l USER END SUB
DEFINT A-Z FUNCTION XOD(k%,kl%)
DIM J AS INTEGER,m AS INTEGER,p AS INTEGER XOD=0
FOR J=0 TO 7 m=J*3
IF A(lines(m))+A(lines(m+1))+A(lines(m+2))=2*k% THEN XOD=1
FOR p=m TO m+2
IF A(lines(p))=0 THEN SHOW lines(p),kl% EXIT FUNCTION END IF NEXT p
END IF NEXT J END FUNCTION
Программа 4_12.с
#include <stdio.h>
#include <conio.h>
void input(void);
void cur_ind(int *cur,int porog,int dcur,int dind);
void step345(void);
int xod(int k, int kl);
void showfint k, int c);
void result(char *s);
int a[9]={0,0,0,0,0,0,0,0,0}, b[9]={3,l,l,l,5,3,l,7,3},
х0=1, у0=1, j, CurX, CurY, Ind; main()
{
clrscr();
window(x0,y0,x0+13,y0+7);
show(5,2); /* Первый ход программы */
input(); /* Ввод 1-го хода игрока */
for(j=0; j<9; j++) /* Второй ход программы */
if (a[j]==-2) { show(b[j],2); break; }
m2:
input(); . /* Ввод последующих ходов игрока */
step345(); /* Последующие ходы программы */
goto m2;
}
/*--------------------------------*/
void result(char *s) {
window(40,l,60,2);
puts(s);
getch () ;
exit(0);
}
/*-------------------------------*/
void show(int k,int c) {
char pos[18]=(3,2,7,2,11,2,3,4,7,4,11,4,3,6,7,6,11,6};
char j;
clrscr ();
printf("+-----------+\n");
printf("| | | |\n");
printf ( "|----|----|----| \n") ;
Содержание Назад Вперед