Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- komp(symbol,symbol)
- clauses
- z(1,1,"-"). z(1,2,"-"). z(1,3,"-").
- z(2,1,"-"). z(2,2,"-"). z(2,3,"-").
- z(3,1,"-"). z(3,2,"-"). z(3,3,"-").
- gamer(1,x). gamer(0,o). komp(x,o). komp(o,x).
- hod(0,S,_):- blok(S,S),!,kartinka,write("Вы проиграли!").
- hod(0,S,C):- blok(S,C),!,kartinka,hod(1,C,S).
- hod(0,S,C):- retract(z(2,2,"-")),!,assert(z(2,2,S)),
- kartinka,hod(1,C,S).
- hod(0,S,C):- z(R,St,"-"), (R+St) mod 2=0,retract(z(R,St,"-")),!,
- assert(z(R,St,S)),kartinka,hod(1,C,S).
- hod(0,S,C):- retract(z(R,St,"-")),!,assert(z(R,St,S)),
- kartinka,hod(1,C,S).
- hod(1,C,S):- z(_,_,"-"),write("Ходите:","по строке (от 1 до 3) - "),
- readint(R),R>0,R<4,write("по столбцу (от 1 до 3) - "),
- readint(St),St>0,St<4,retract(z(R,St,"-")),!,
- assert(z(R,St,C)),hod(0,S,C).
- hod(_,_,_):- not(z(_,_,"-")),nl,write("Ничья!").
- blok(S,C):- z(N1,St,C),z(N2,St,C),N1<>N2,
- retract(z(N3,St,"-")),!,assert(z(N3,St,S));
- z(R,N1,C),z(R,N2,C),N1<>N2,retract(z(R,N3,"-")),!,
- assert(z(R,N3,S));
- z(I,I1,C),I=I1,z(J,J1,C),J=J1,I<>J,z(K,K1,"-"),K=K1,
- retract(z(K,K1,"-")),!,assert(z(K,K1,S));
- z(I,J,C),I+J=4,z(N,K,C),N<>I,N+K=4,z(M,L,"-"),M+L=4,
- retract(z(M,L,"-")),!,assert(z(M,L,S)).
- kartinka:-z(1,1,S1),z(1,2,S2),z(1,3,S3),
- z(2,1,S4),z(2,2,S5), z(2,3,S6),
- z(3,1,S7),z(3,2,S8),z(3,3,S9),!,
- write("Ход компьютера."),nl,nl,
- write(S1,"|",S2,"|",S3),nl,
- write("------"),nl,
- write(S4,"|",S5,"|",S6),nl,
- write("------"),nl,
- write(S7,"|",S8,"|",S9),nl,nl.
- goal
- write("Кто ходит первым?? (1 - я, 0 - противник) "),
- readint(Igrok),
- gamer(1,I1),komp(I1,I2),hod(Igrok,I1,I2),!,
- nl,nl; write("Правила нарушены."),nl.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement