Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Список использованных источников




 

1. Стерлинг Л., Шапиро Э. Искусство программирования на языке Пролог. - М.: Мир, 1990. - 333 с.

.   Братко И. Программирование на языке Пролог для искусственного интеллекта: Пер. с англ. - М.: Мир, 1990.- 560 с., ил.

.   Материал из Википедии - свободной энциклопедии. - 2010. [Электронный ресурс]. URL: http://ru.wikipedia.org/wiki/ Крестики-нолики.


ПРИЛОЖЕНИЕ

Исходный код программы

 

%===================================================%

DATABASE - mydb

global_field (integer, integer, integer, integer, integer, integer, integer, integer, integer)_score (integer, integer)_game_end (integer)

%===================================================%(integer)_score ()_first ()(integer)(integer)_move (integer, integer, integer)_field (integer, integer, integer, integer, integer, integer, integer, integer, integer)_x_o (integer)_global_field (integer, integer, integer, integer, integer, integer, integer, integer, integer)_global_score (integer)_global_game_end (integer)_field (integer)_empty (integer, integer)_win (integer)_won (integer)_move (integer, integer)_move (integer)_end_game (integer)

%===================================================%_empty(0,NX):- NX=0._empty(_,NX):- NX=1._field(End):- global_field(X1,X2,X3,X4,X5,X6,X7,X8,X9),_empty(X1,A),_empty(X2,B),_empty(X3,C),_empty(X4,D),_empty(X5,E),_empty(X6,F),_empty(X7,G),_empty(X8,H),_empty(X9,I),=A+B+C+D+E+F+G+H+I._global_score(1):-_score(You,Comp),(global_score(_,_), mydb),=You+1,(global_score(NewYou,Comp), mydb)._global_score(2):-_score(You,Comp),(global_score(_,_), mydb),=Comp+1,(global_score(You,NewComp), mydb)._global_score(_)._global_game_end(X):-(global_game_end(_), mydb),(global_game_end(X), mydb),!._won(1):- edit_global_score(1), edit_global_field(0,0,0,0,0,0,0,0,0), edit_global_game_end(1), write("> You won! =)"), nl, nl,!._won(2):- edit_global_score(2), edit_global_field(0,0,0,0,0,0,0,0,0), edit_global_game_end(1), write("> You lose.:("), nl, nl,!._won(_)._win(1):- global_field(X1,X2,X3,X4,X5,X6,X7,X8,X9), X1<>0, X1=X2,X1=X3, who_won(X1),!._win(1):- global_field(X1,X2,X3,X4,X5,X6,X7,X8,X9), X4<>0, X4=X5,X4=X6, who_won(X4),!._win(1):- global_field(X1,X2,X3,X4,X5,X6,X7,X8,X9), X7<>0, X7=X8,X7=X9, who_won(X7),!._win(1):- global_field(X1,X2,X3,X4,X5,X6,X7,X8,X9), X1<>0, X1=X4,X1=X7, who_won(X1),!._win(1):- global_field(X1,X2,X3,X4,X5,X6,X7,X8,X9), X2<>0, X2=X5,X2=X8, who_won(X2),!._win(1):- global_field(X1,X2,X3,X4,X5,X6,X7,X8,X9), X3<>0, X3=X6,X3=X9, who_won(X3),!._win(1):- global_field(X1,X2,X3,X4,X5,X6,X7,X8,X9), X1<>0, X1=X5,X1=X9, who_won(X1),!._win(1):- global_field(X1,X2,X3,X4,X5,X6,X7,X8,X9), X3<>0, X3=X5,X3=X7, who_won(X3),!._win(0)._move(1,1):- global_field(X1,_,_,_,_,_,_,_,_), X1>0,!._move(2,1):- global_field(_,X2,_,_,_,_,_,_,_), X2>0,!._move(3,1):- global_field(_,_,X3,_,_,_,_,_,_), X3>0,!._move(4,1):- global_field(_,_,_,X4,_,_,_,_,_), X4>0,!._move(5,1):- global_field(_,_,_,_,X5,_,_,_,_), X5>0,!._move(6,1):- global_field(_,_,_,_,_,X6,_,_,_), X6>0,!._move(7,1):- global_field(_,_,_,_,_,_,X7,_,_), X7>0,!._move(8,1):- global_field(_,_,_,_,_,_,_,X8,_), X8>0,!._move(9,1):- global_field(_,_,_,_,_,_,_,_,X9), X9>0,!._move(_,0)._global_field(NewX1,NewX2,NewX3,NewX4,NewX5,NewX6,NewX7,NewX8,NewX9):-_field(X1,X2,X3,X4,X5,X6,X7,X8,X9),(global_field(X1,X2,X3,X4,X5,X6,X7,X8,X9), mydb),(global_field(NewX1,NewX2,NewX3,NewX4,NewX5,NewX6,NewX7,NewX8,NewX9), mydb)._x_o(1):-!, write("x")._x_o(2):-!, write("o")._x_o(0):-!, write(" ")._field(X1,X2,X3,X4,X5,X6,X7,X8,X9):- clearwindow,(" -------------"), nl,(" | "), scan_x_o(X1), write(" | "), scan_x_o(X2), write(" | "), scan_x_o(X3), write(" |"), nl,(" -------------"), nl,(" | "), scan_x_o(X4), write(" | "), scan_x_o(X5), write(" | "), scan_x_o(X6), write(" |"), nl,(" -------------"), nl,(" | "), scan_x_o(X7), write(" | "), scan_x_o(X8), write(" | "), scan_x_o(X9), write(" |"), nl,(" -------------"), nl, nl._move(First, 1, 1):- scan_move(1,Pusto), Pusto<1,!,global_field(X1,X2,X3,X4,X5,X6,X7,X8,X9), edit_global_field(First,X2,X3,X4,X5,X6,X7,X8,X9), draw_field(First,X2,X3,X4,X5,X6,X7,X8,X9),!._move(First, 2, 1):- scan_move(2,Pusto), Pusto<1,!,global_field(X1,X2,X3,X4,X5,X6,X7,X8,X9), edit_global_field(X1,First,X3,X4,X5,X6,X7,X8,X9), draw_field(X1,First,X3,X4,X5,X6,X7,X8,X9),!._move(First, 3, 1):- scan_move(3,Pusto), Pusto<1,!,global_field(X1,X2,X3,X4,X5,X6,X7,X8,X9), edit_global_field(X1,X2,First,X4,X5,X6,X7,X8,X9), draw_field(X1,X2,First,X4,X5,X6,X7,X8,X9),!._move(First, 4, 1):- scan_move(4,Pusto), Pusto<1,!,global_field(X1,X2,X3,X4,X5,X6,X7,X8,X9), edit_global_field(X1,X2,X3,First,X5,X6,X7,X8,X9), draw_field(X1,X2,X3,First,X5,X6,X7,X8,X9),!._move(First, 5, 1):- scan_move(5,Pusto), Pusto<1,!,global_field(X1,X2,X3,X4,X5,X6,X7,X8,X9), edit_global_field(X1,X2,X3,X4,First,X6,X7,X8,X9), draw_field(X1,X2,X3,X4,First,X6,X7,X8,X9),!._move(First, 6, 1):- scan_move(6,Pusto), Pusto<1,!,global_field(X1,X2,X3,X4,X5,X6,X7,X8,X9), edit_global_field(X1,X2,X3,X4,X5,First,X7,X8,X9), draw_field(X1,X2,X3,X4,X5,First,X7,X8,X9),!._move(First, 7, 1):- scan_move(7,Pusto), Pusto<1,!,global_field(X1,X2,X3,X4,X5,X6,X7,X8,X9), edit_global_field(X1,X2,X3,X4,X5,X6,First,X8,X9), draw_field(X1,X2,X3,X4,X5,X6,First,X8,X9),!._move(First, 8, 1):- scan_move(8,Pusto), Pusto<1,!,global_field(X1,X2,X3,X4,X5,X6,X7,X8,X9), edit_global_field(X1,X2,X3,X4,X5,X6,X7,First,X9), draw_field(X1,X2,X3,X4,X5,X6,X7,First,X9),!._move(First, 9, 1):- scan_move(9,Pusto), Pusto<1,!,global_field(X1,X2,X3,X4,X5,X6,X7,X8,X9), edit_global_field(X1,X2,X3,X4,X5,X6,X7,X8,First), draw_field(X1,X2,X3,X4,X5,X6,X7,X8,First),!._move(_,_,0):-!._end_game(9):-edit_global_game_end(1)._end_game(_).(1):-_game_end(Endgame), Endgame=0,!,("Your step (1-9): "), readint(Xod),_move(1, Xod, XodEst), XodEst>0,_win(Find_win), Find_win<1,!,_field(End), scan_end_game(End),(2).(1):- global_game_end(End), End=0,!, game(1).(2):-_game_end(Endgame), Endgame=0,!,_move(Xod),

%write("Computer's lead: ",Xod), nl, readchar(QWERTY),_move(2, Xod, XodEst), XodEst>0,_win(Find_win), Find_win<1,!,_field(End), scan_end_game(End),(1).(2):- global_game_end(End), End=0,!, game(2).(_):-!.(1):- draw_field(0,0,0,0,0,0,0,0,0),("> Your step is the first!"), nl, nl,(1),menu.(2):- draw_field(0,0,0,0,0,0,0,0,0),("> Your step is the second"), readchar(JKHBVJD), nl, nl,(2),menu.(_):- clearwindow, write(">! Incorrect input! Please try again."), nl, nl, who_first()._first():-("The first step?"), nl,nl,("1. You's"), nl,("2. Computer's"), nl,("=>"), readint(Select), nl,(Select)._score():-_score(You,Comp),(" You: "), write(You), nl,(" Computer: "), write(Comp)._move(1):- global_field(X1,X2,X3,X4,X5,X6,X7,X8,X9), X2<>0,X3<>0,X4<>0,X5<>0,X6<>0,X7<>0,X8<>0,X9<>0,!._move(2):- global_field(X1,X2,X3,X4,X5,X6,X7,X8,X9), X1<>0,X3<>0,X4<>0,X5<>0,X6<>0,X7<>0,X8<>0,X9<>0,!._move(3):- global_field(X1,X2,X3,X4,X5,X6,X7,X8,X9), X1<>0,X2<>0,X4<>0,X5<>0,X6<>0,X7<>0,X8<>0,X9<>0,!._move(4):- global_field(X1,X2,X3,X4,X5,X6,X7,X8,X9), X1<>0,X2<>0,X3<>0,X5<>0,X6<>0,X7<>0,X8<>0,X9<>0,!._move(5):- global_field(X1,X2,X3,X4,X5,X6,X7,X8,X9), X1<>0,X2<>0,X3<>0,X4<>0,X6<>0,X7<>0,X8<>0,X9<>0,!._move(6):- global_field(X1,X2,X3,X4,X5,X6,X7,X8,X9), X1<>0,X2<>0,X3<>0,X4<>0,X5<>0,X7<>0,X8<>0,X9<>0,!._move(7):- global_field(X1,X2,X3,X4,X5,X6,X7,X8,X9), X1<>0,X2<>0,X3<>0,X4<>0,X5<>0,X6<>0,X8<>0,X9<>0,!._move(8):- global_field(X1,X2,X3,X4,X5,X6,X7,X8,X9), X1<>0,X2<>0,X3<>0,X4<>0,X5<>0,X6<>0,X7<>0,X9<>0,!._move(9):- global_field(X1,X2,X3,X4,X5,X6,X7,X8,X9), X1<>0,X2<>0,X3<>0,X4<>0,X5<>0,X6<>0,X7<>0,X8<>0,!.

%_move(3):- global_field(X1,X2,X3,X4,X5,X6,X7,X8,X9), X1<>0,X1=X2,X3=0,!._move(6):- global_field(X1,X2,X3,X4,X5,X6,X7,X8,X9), X4<>0,X4=X5,X6=0,!._move(9):- global_field(X1,X2,X3,X4,X5,X6,X7,X8,X9), X7<>0,X7=X8,X9=0,!._move(1):- global_field(X1,X2,X3,X4,X5,X6,X7,X8,X9), X2<>0,X2=X3,X1=0,!._move(4):- global_field(X1,X2,X3,X4,X5,X6,X7,X8,X9), X5<>0,X5=X6,X4=0,!._move(7):- global_field(X1,X2,X3,X4,X5,X6,X7,X8,X9), X8<>0,X8=X9,X7=0,!._move(7):- global_field(X1,X2,X3,X4,X5,X6,X7,X8,X9), X1<>0,X1=X4,X7=0,!._move(8):- global_field(X1,X2,X3,X4,X5,X6,X7,X8,X9), X2<>0,X2=X5,X8=0,!._move(9):- global_field(X1,X2,X3,X4,X5,X6,X7,X8,X9), X3<>0,X3=X6,X9=0,!._move(1):- global_field(X1,X2,X3,X4,X5,X6,X7,X8,X9), X4<>0,X4=X7,X1=0,!._move(2):- global_field(X1,X2,X3,X4,X5,X6,X7,X8,X9), X5<>0,X5=X8,X2=0,!._move(3):- global_field(X1,X2,X3,X4,X5,X6,X7,X8,X9), X6<>0,X6=X9,X3=0,!._move(9):- global_field(X1,X2,X3,X4,X5,X6,X7,X8,X9), X1<>0,X1=X5,X9=0,!._move(1):- global_field(X1,X2,X3,X4,X5,X6,X7,X8,X9), X5<>0,X5=X9,X1=0,!._move(7):- global_field(X1,X2,X3,X4,X5,X6,X7,X8,X9), X5<>0,X5=X3,X7=0,!._move(3):- global_field(X1,X2,X3,X4,X5,X6,X7,X8,X9), X5<>0,X5=X7,X3=0,!._move(2):- global_field(X1,X2,X3,X4,X5,X6,X7,X8,X9), X1<>0,X1=X3,X2=0,!._move(5):- global_field(X1,X2,X3,X4,X5,X6,X7,X8,X9), X4<>0,X4=X6,X5=0,!._move(8):- global_field(X1,X2,X3,X4,X5,X6,X7,X8,X9), X7<>0,X7=X9,X8=0,!._move(4):- global_field(X1,X2,X3,X4,X5,X6,X7,X8,X9), X1<>0,X1=X7,X4=0,!._move(5):- global_field(X1,X2,X3,X4,X5,X6,X7,X8,X9), X2<>0,X2=X8,X5=0,!._move(6):- global_field(X1,X2,X3,X4,X5,X6,X7,X8,X9), X3<>0,X3=X9,X6=0,!._move(5):- global_field(X1,X2,X3,X4,X5,X6,X7,X8,X9), X1<>0,X1=X9,X5=0,!._move(5):- global_field(X1,X2,X3,X4,X5,X6,X7,X8,X9), X3<>0,X3=X7,X5=0,!._move(Xod):- random(8,TempXod), Xod=TempXod+1,!.(1):- clearwindow, write("New Game"),nl,_global_game_end(0),edit_global_field(0,0,0,0,0,0,0,0,0),, who_first(), nl, nl.(2):- clearwindow, write("Score"), nl, show_score(), nl, nl,fail.(0):-!.(_).:-nl,repeat,("Crosses and zeroes"), nl, nl,("1. New Game"), nl,("2. Score"), nl,("0. Exit"), nl,("=>"), readint(Choice),(Choice), Choice=0..:-repeat.

%=============================================================================%(off),,(global_game_end(0), mydb),(global_field(0,0,0,0,0,0,0,0,0), mydb),(global_score(0,0), mydb),

menu

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...