Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.218.38.125] |
|
Сообщ.
#1
,
|
|
|
Всем привет,
может кто подскажет где у меня ошибка Игра "Крестики-нолики" Дана NxM игральная доска. Найти как "нолики" двумя ходами выигрывают против "крестиков" Predicates z(integer, integer, symbol) predicates pictre move(integer, symbol, symbol) block(symbol, symbol) than(integer, symbol) ANSP(symbol, symbol) goal write("Who goes first? (1 - a man, 0 - computer)", readint(player), write("What? (1 - crosses, 0 - null)"), readint(N, than(N,I1), ANSP(I1,I2), move(player, I1,I2),!,nl, nl; write("The rules violated."), nl. 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,"-"). than(1,x), than(0,o), ANSP(x,o), ANSP(o,x). move(0,S,_):- block(S,S),!,image,write("nComputer win!"). move(0,S,C):- block(S,C),!image,move(1,C,S). move(0,S,C):- retract(z(2,2,"-")),!assert(z(2,2,S)), image,move(1,C,S). move(0,S,C): -z(R,St,"-"),(R+St) mod 2=0, retract(z(R,St,"-")),!, assert(z(R,St,S)), image, move(1,C,S). move(0,S,C):- retract(z(R,St,"-")),!assert(z(R,St,S)), image,move(1,C,S). move(1,C,S):- z(_,_,"-"), write("Walk:", "stroka(1-3)-"), readint(R,R>0,R<4,write("stolbec(1-3)-"), readint(St),St>0,St<4,retract(z(R,St,"-")),!, readint(St,St>0,St<4, retract(z(R,St,"-")),!, assert(z(R,St,C)),move(0,S,C). move(_,_,_):- not(z(_,_,"-")), nl, write("Draw!"). block(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)). image:- 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("nNow play computer."),nl,nl, writef("t%t%t%nt%t%t%nt%t%t%", S1,S2,S3,S4,S5,S6,S7,S8,S9),nl,nl. |
Сообщ.
#2
,
|
|
|
Здесь, вроде, первый ход всегда человек делает.
Прикреплённый файл________.rar (4,46 Кбайт, скачиваний: 316) |
Сообщ.
#3
,
|
|
|
Хмм пытаюсь разобраться в своём
database z(integer,integer,symbol) predicates image move(integer,symbol,symbol) block(symbol,symbol) with(integer,symbol) vv(symbol,symbol) goal write("Кто ходит первым? (1 - человек, 0 - компьютер) "), readint(gamer),write("чем? (1 - крестиками, 0 - ноликами) "), readint(N),with(N,I1),vv(I1,I2),move(gamer,I1,I2),!, nl,nl; write("Правила нарушены."),nl. 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,"-"). with(1,x). with(0,o). vv(x,o). vv(o,x). move(0,S,_):- block(S,S),!,image,write("nКомпьютер выиграл!"). move(0,S,C):- block(S,C),!,image,move(1,C,S). move(0,S,C):- retract(z(2,2,"-")),!,assert(z(2,2,S)), image,move(1,C,S). move(0,S,C):- z(R,St,"-"), (R+St) mod 2=0,retract(z(R,St,"-")),!, assert(z(R,St,S)),image,move(1,C,S). move(0,S,C):- retract(z(R,St,"-")),!,assert(z(R,St,S)), image,move(1,C,S). move(1,C,S):- z(_,_,"-"),write("Ходи:","ncтрока (от 1 до 3) - "), readint(R),R>0,R<4,write("cтолбец (от 1 до 3) - "), readint(St),St>0,St<4,retract(z(R,St,"-")),!, assert(z(R,St,C)),move(0,S,C). move(_,_,_):- not(z(_,_,"-")),nl,write("Ничья!"). block(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)). image:- 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("nХод компьютера."),nl,nl, writef("t%t%t%nt%t%t%nt%t%t%", S1,S2,S3,S4,S5,S6,S7,S8,S9),nl,nl. 512 Type error: Wrong object type как описать gamer объект |
Сообщ.
#4
,
|
|
|
последний код исправлен
|