Listing
Program Game
Masha And The Bear Versus
?-
%**********************************************%
% Ahmad Faiz %
% 50412429 %
% 3IA12 %
%**********************************************%
win_deep(0).
nolose_deep(0).
?-
%=========Deklarasi
Gambar==========%
G_bgplay
is bitmap_image("image\\bgplay.bmp",_),
G_bghow
is bitmap_image("image\\bghow.bmp",_),
G_bgwinner
is bitmap_image("image\\bgwinner.bmp",_),
G_bgloser
is bitmap_image("image\\bgloser.bmp",_),
G_bgsplash
is bitmap_image("image\\bgsplash.bmp",_),
G_x
is bitmap_image("image\\x.bmp",_),
%splash
screen
window(G_Splash,
_, windowS(_),"Ahmad Faiz",420,200,420,320).
windowS(init):- % set timer
G_batas := 0,
G_waktu is
set_timer(_,0.10,fungsi_timer).
windowS(paint):-
draw_bitmap(0,0,G_x,_,_).
fungsi_timer(end):- %fungsi timer
G_batas := G_batas +5,
(G_batas >= 100 -> close_window(G_Splash),
window(G_splash,_,window_awal(_),"splash",420,180,500,400)).
window_awal(init):-
close_window(G_splash),
window(G_menu,
_, daftar_menu(_),"MASHA AND THE BEAR VERSUS", 150, 10, 970, 700).
daftar_menu(init):-
menu(pop_up, _,_,menu_bar(_),"Pilihan"),
menu(normal, _,_,cara_main(_),"Cara
Main"),
menu(normal,
_,_,about(_),"About"),
button(_,_,mulai(_),"Mulai",400,530,150,50),
button(_,_,cara_main(_),"Cara
Main",200,530,150,50),
button(_,_,keluar(_),"Keluar",600,530,150,50).
daftar_menu(paint):-
draw_bitmap(0,0,G_bgsplash,_,_),fail.
menu_bar(init):-
menu(normal,_,_,mulai(_),"Mulai"),
menu(normal,_,_,keluar(_),"Keluar").
menu_back(press):-
close_window(G_main),
execute("Audio\\taskill.bat"),
window(G_menu, _,
daftar_menu(_),"MASHA AND THE BEAR VERSUS", 150, 10, 950, 700).
mulai(press):-
close_window(G_menu),
execute("Audio/lagu.exe"),
set(pos([[f,f,f,f,f,f,f,f,f,f,f,f],
[f,f,f,f,f,f,f,f,f,f,f,f], [f,f,f,f,f,f,f,f,f,f,f,f],
[f,f,f,f,f,f,f,f,f,f,f,f],
[f,f,f,f,f,f,f,f,f,f,f,f], [f,f,f,f,f,f,f,f,f,f,f,f],
[f,f,f,f,f,f,f,f,f,f,f,f],
[f,f,f,f,f,f,f,f,f,f,f,f], [f,f,f,f,f,f,f,f,f,f,f,f],
[f,f,f,f,f,f,f,f,f,f,f,f], [f,f,f,f,f,f,f,f,f,f,f,f],
[f,f,f,f,f,f,f,f,f,f,f,f]])),
set(lose_flag(false)),
brush(system_color(window)),
window( G_main, _, win_func(_), "MASHA
AND THE BEAR VERSUS", 150, 10, 950, 700).
set(lose_flag(false)),
brush(system_color(window)),
window( G_main, _, win_func(_), "MASHA
AND THE BEAR VERSUS", 150, 10, 950, 700).
about(press):-
message("About","
Game
ini dibuat oleh:
AHMAD FAIZ
50412429
UNIVERSITAS
GUNADARMA
2014 ", i).
write("OK"), nl.
cara_main(press):-
window(G_how,_,win_how(_),"Cara
Bermain",150, 10, 970, 700).
win_how(paint):-
draw_bitmap(0,0,G_bghow,_,_),
button(_,_,cara_kembali(_),"Kembali",780,600,100,40),fail.
cara_kembali(press):-
close_window(G_how).
keluar(press):-
yes_no("Keluar", "Yakin
ingin keluar",?),
execute("Audio\\taskill.bat"),
close_window(G_main),
close_window(G_menu).
win_func(init):-
menu(normal,
_,_,menu_back(_),"Menu"),
menu(normal, _,_,cara_main(_),"Cara
Main"),
menu(normal,
_,_,about(_),"About"),
menu(normal,_,_,keluar(_),"Keluar").
put_mark(Mark)
:-
pos(Current_Pos),
member(Current_Pos, L, Y),
member(L, Mark, X),
X1 is 40 + 50*X,
Y1 is 40 + 50*Y,
X2 is X1 + 35,
Y2 is Y1 + 35,
write_mark(Mark, X1, Y1, X2, Y2),
fail.
put_mark(_).
write_mark(x,
X1, Y1, X2, Y2) :-
draw_bitmap(X1,Y1,bitmap_image("Image//masha.bmp",_),_,_).
write_mark(o,
X1, Y1, X2, Y2) :-
draw_bitmap(X1,Y1,bitmap_image("Image//bear.bmp",_),_,_).
%=======window
papan permainan======%
win_func(paint)
:-
draw_bitmap(0,0,G_bgplay,_,_),
pen(1, rgb(0, 0, 0)), % hitam
%line(30, 35, 510, 30),% garis horizontal
line(30, 85, 630, 85),
line(30, 135, 630, 135),
line(30, 185, 630, 185),
line(30, 235, 630, 235),
line(30, 285, 630, 285),
line(30, 335, 630, 335),
line(30, 385, 630, 385),
line(30, 435, 630, 435),
line(30, 485, 630, 485),
line(30, 535, 630, 535),
line(30, 585, 630, 585),
%line(30, 635, 630, 635),
%line(30, 30, 30, 630),% garis vertikal
line(85, 30, 85, 630),
line(135, 30, 135, 630),
line(185, 30, 185, 630),
line(235, 30, 235, 630),
line(285, 30, 285, 630),
line(335, 30, 335, 630),
line(385, 30, 385, 630),
line(435, 30, 435, 630),
line(485, 30, 485, 630),
line(535, 30, 535, 630),
line(585, 30, 585, 630),
%line(635, 30, 635, 630),
%warna
pemain permainan
pen(1, rgb(0, 0, 0)),
put_mark(X),
pen(1, rgb(0, 0, 0)),
put_mark(O),
fail.
win_func(mouse_click(X,
Y)) :-
lose_flag(false),
X>30, Y>30,
X<630, Y<630,
X1 is (X - 40)//50,
Y1 is (Y - 40)//50,
pos(Current_Pos),
member(Current_Pos, L, Y1),
member(L, f, X1),
!,
replace(L2, L, x, X1),
replace(Current_Pos2, Current_Pos, L2, Y1),
set(pos(Current_Pos2)),
not(win_func(paint)),
beep("Audio\\jep.wav"),
think(Current_Pos2).
win_func(mouse_click(X,
Y)) :-
beep.
think(Pos)
:-
victory(x, Pos), !,
set(lose_flag(true)),
execute("Audio\\taskill.bat"),
beep("Audio\\horaa.wav"),
message("Unbelievable","Anda
menang...",!),
close_window(G_play),
window(G_winner,_,win_winner(_),"You're
A Winner",250, 150, 720, 440).
win_winner(paint):-
draw_bitmap(0,0,G_bgwinner,_,_),fail.
%=======Window
Button Winner========%
win_winner(init):-
button(_,_,wintryagain(_),"Try
Again",520,130,100,30),
button(_,_,winexit(_),"Exit",520,240,100,30).
%=======Window
Try Again Winner=====%
wintryagain(press):-
close_window(G_winner),
set(pos([[f,f,f,f,f,f,f,f,f,f,f,f],
[f,f,f,f,f,f,f,f,f,f,f,f], [f,f,f,f,f,f,f,f,f,f,f,f],
[f,f,f,f,f,f,f,f,f,f,f,f],
[f,f,f,f,f,f,f,f,f,f,f,f], [f,f,f,f,f,f,f,f,f,f,f,f],
[f,f,f,f,f,f,f,f,f,f,f,f],
[f,f,f,f,f,f,f,f,f,f,f,f], [f,f,f,f,f,f,f,f,f,f,f,f],
[f,f,f,f,f,f,f,f,f,f,f,f],
[f,f,f,f,f,f,f,f,f,f,f,f], [f,f,f,f,f,f,f,f,f,f,f,f]])),
set(lose_flag(false)),
brush(system_color(window)),
window(G_main, _, win_func(_),
"MASHA", 150, 10, 950, 700).
%=========Window
Exit Winner=======%
winexit(press):-
close_window(G_winner).
think(Pos)
:-
try_to_win(Pos), !.
think(Pos)
:-
retractall(last_good_move(_)),
try_nolose(Pos).
think(_)
:-
last_good_move(Sit2), !,
set(pos(Sit2)),
not(win_func(paint)),
beep("Audio\\tuil.wav").
think(Pos)
:-
message("Congratulations",
"You have some chance in this game.", n),
move(o, Pos, Sit2),
nolose(x, Sit2, 0), !, % Tries to make the
lose farther
set(pos(Sit2)),
not(win_func(paint)),
beep("Audio\\tuil.wav").
think(Pos)
:-
move(o, Pos, Sit2),
set(pos(Sit2)),
not(win_func(paint)),
beep("Audio\\tuil.wav").
try_nolose(Pos)
:-
move(o, Pos, Sit2),
nolose_deep(Deep),
nolose(x, Sit2, Deep),
set(last_good_move(Sit2)),
random(3)=:=0, !, fail. % this makes the game
more interesting
try_to_win(Pos)
:-
move(o, Pos, Sit2),
is_it_win(Sit2).
is_it_win(Sit2)
:-
victory(o, Sit2),
set(pos(Sit2)),
not(win_func(paint)),
set(lose_flag(true)),
execute("Audio\\taskill.bat"),
beep("Audio\\Boo.wav"),
message("Sorry","Yah
kalah...",s),
beep("Audio\\klik.wav"),
%===========window
loser============%
close_window(G_play),
window(G_loser,_,win_loser(_),"You're
A Loser",250, 150, 720, 440).
win_loser(paint):-
draw_bitmap(0,0,G_bgloser,_,_),fail.
%======Window
Button Loser==========%
win_loser(init):-
button(_,_,losetryagain(_),"Try
Again",80,70,100,30),
button(_,_,loseexit(_),"Exit",80,130,100,30).
%====Window
Try Again Loser=========%
losetryagain(press):-
close_window(G_loser),
execute("Audio/lagu.exe"),
set(pos([[f,f,f,f,f,f,f,f,f,f,f,f],
[f,f,f,f,f,f,f,f,f,f,f,f], [f,f,f,f,f,f,f,f,f,f,f,f],
[f,f,f,f,f,f,f,f,f,f,f,f],
[f,f,f,f,f,f,f,f,f,f,f,f], [f,f,f,f,f,f,f,f,f,f,f,f],
[f,f,f,f,f,f,f,f,f,f,f,f],
[f,f,f,f,f,f,f,f,f,f,f,f], [f,f,f,f,f,f,f,f,f,f,f,f],
[f,f,f,f,f,f,f,f,f,f,f,f],
[f,f,f,f,f,f,f,f,f,f,f,f], [f,f,f,f,f,f,f,f,f,f,f,f]])),
set(lose_flag(false)),
brush(system_color(window)),
window(G_play, _, win_func(_),
"XandO", 150, 10, 950, 700).
%========Window
Exit Loser==========%
loseexit(press):-
close_window(G_loser).
is_it_win(Sit2)
:-
win_deep(Deep),
win(x, Sit2, Deep),
set(pos(Sit2)),
not(win_func(paint)),
message("Advice","Give up.
Don't lose my time.",i).
member([Element,
_, _, _, _, _, _, _, _, _, _, _], Element, 0).
member([_,
Element, _, _, _, _, _, _, _, _, _, _], Element, 1).
member([_,
_, Element, _, _, _, _, _, _, _, _, _], Element, 2).
member([_,
_, _, Element, _, _, _, _, _, _, _, _], Element, 3).
member([_,
_, _, _, Element, _, _, _, _, _, _, _], Element, 4).
member([_,
_, _, _, _, Element, _, _, _, _, _, _], Element, 5).
member([_,
_, _, _, _, _, Element, _, _, _, _, _], Element, 6).
member([_,
_, _, _, _, _, _, Element, _, _, _, _], Element, 7).
member([_,
_, _, _, _, _, _, _, Element, _, _, _], Element, 8).
member([_,
_, _, _, _, _, _, _, _, Element, _, _], Element, 9).
member([_,
_, _, _, _, _, _, _, _, _, Element, _], Element, 10).
member([_,
_, _, _, _, _, _, _, _, _, _, Element], Element, 11).
replace([Element,
A, B, C, D, E, F, G, H, I, J, K], [_, A, B, C, D, E, F, G, H, I, J, K],
Element, 0).
replace([A,
Element, B, C, D, E, F, G, H, I, J, K], [A, _, B, C, D, E, F, G, H, I, J, K],
Element, 1).
replace([A,
B, Element, C, D, E, F, G, H, I, J, K], [A, B, _, C, D, E, F, G, H, I, J, K],
Element, 2).
replace([A,
B, C, Element, D, E, F, G, H, I, J, K], [A, B, C, _, D, E, F, G, H, I, J, K],
Element, 3).
replace([A,
B, C, D, Element, E, F, G, H, I, J, K], [A, B, C, D, _, E, F, G, H, I, J, K],
Element, 4).
replace([A,
B, C, D, E, Element, F, G, H, I, J, K], [A, B, C, D, E, _, F, G, H, I, J, K],
Element, 5).
replace([A,
B, C, D, E, F, Element, G, H, I, J, K], [A, B, C, D, E, F, _, G, H, I, J, K],
Element, 6).
replace([A,
B, C, D, E, F, G, Element, H, I, J, K], [A, B, C, D, E, F, G, _, H, I, J, K],
Element, 7).
replace([A,
B, C, D, E, F, G, H, Element, I, J, K], [A, B, C, D, E, F, G, H, _, I, J, K],
Element, 8).
replace([A,
B, C, D, E, F, G, H, I, Element, J, K], [A, B, C, D, E, F, G, H, I, _, J, K],
Element, 9).
replace([A,
B, C, D, E, F, G, H, I, J, Element, K], [A, B, C, D, E, F, G, H, I, J, _, K],
Element, 10).
replace([A,
B, C, D, E, F, G, H, I, J, K, Element], [A, B, C, D, E, F, G, H, I, J, K, _],
Element, 11).
%======kondisi
menang horizontal======%
victory(
Who, [[Who, Who, Who, Who, Who, Who, Who, Who, Who, Who, Who, Who],
[_, _, _, _, _, _, _, _, _, _,
_, _],
[_, _, _, _, _, _, _, _, _, _,
_, _],
[_, _, _, _, _, _, _, _, _, _,
_, _],
[_, _, _, _, _, _, _, _, _, _,
_, _],
[_, _, _, _, _, _, _, _, _, _,
_, _],
[_, _, _, _, _, _, _, _, _, _,
_, _],
[_, _, _, _, _, _, _, _, _, _,
_, _],
[_, _, _, _, _, _, _, _, _, _,
_, _],
[_, _, _, _, _, _, _, _, _, _,
_, _],
[_, _, _, _, _, _, _, _, _, _,
_, _],
[_, _, _, _, _, _, _, _, _, _,
_, _]]).
victory(
Who, [[_, _, _, _, _, _, _, _, _, _, _, _],
[Who, Who, Who, Who, Who, Who,
Who, Who, Who, Who, Who, Who],
[_, _, _, _, _, _, _, _, _, _,
_, _],
[_, _, _, _, _, _, _, _, _, _,
_, _],
[_, _, _, _, _, _, _, _, _, _,
_, _],
[_, _, _, _, _, _, _, _, _, _,
_, _],
[_, _, _, _, _, _, _, _, _, _,
_, _],
[_, _, _, _, _, _, _, _, _, _,
_, _],
[_, _, _, _, _, _, _, _, _, _,
_, _],
[_, _, _, _, _, _, _, _, _, _,
_, _],
[_, _, _, _, _, _, _, _, _, _,
_, _],
[_, _, _, _, _, _, _, _, _, _,
_, _]]).
victory(
Who, [[_, _, _, _, _, _, _, _, _, _, _, _],
[_, _, _, _, _, _, _, _, _, _,
_, _],
[Who, Who, Who, Who, Who, Who,
Who, Who, Who, Who, Who, Who],
[_, _, _, _, _, _, _, _, _, _,
_, _],
[_, _, _, _, _, _, _, _, _, _,
_, _],
[_, _, _, _, _, _, _, _, _, _,
_, _],
[_, _, _, _, _, _, _, _, _, _,
_, _],
[_, _, _, _, _, _, _, _, _, _,
_, _],
[_, _, _, _, _, _, _, _, _, _,
_, _],
[_, _, _, _, _, _, _, _, _, _,
_, _],
[_, _, _, _, _, _, _, _, _, _,
_, _],
[_, _, _, _, _, _, _, _, _, _,
_, _]]).
victory(
Who, [[_, _, _, _, _, _, _, _, _, _, _, _],
[_, _, _, _, _, _, _, _, _, _,
_, _],
[_, _, _, _, _, _, _, _, _, _,
_, _],
[Who, Who, Who, Who, Who, Who,
Who, Who, Who, Who, Who, Who],
[_, _, _, _, _, _, _, _, _, _,
_, _],
[_, _, _, _, _, _, _, _, _, _,
_, _],
[_, _, _, _, _, _, _, _, _, _,
_, _],
[_, _, _, _, _, _, _, _, _, _,
_, _],
[_, _, _, _, _, _, _, _, _, _,
_, _],
[_, _, _, _, _, _, _, _, _, _,
_, _],
[_, _, _, _, _, _, _, _, _, _,
_, _],
[_, _, _, _, _, _, _, _, _, _,
_, _]]).
victory(
Who, [[_, _, _, _, _, _, _, _, _, _, _, _],
[_, _, _, _, _, _, _, _, _, _,
_, _],
[_, _, _, _, _, _, _, _, _, _, _, _],
[_, _, _, _, _, _, _, _, _, _,
_, _],
[Who, Who, Who, Who, Who, Who,
Who, Who, Who, Who, Who, Who],
[_, _, _, _, _, _, _, _, _, _,
_, _],
[_, _, _, _, _, _, _, _, _, _,
_, _],
[_, _, _, _, _, _, _, _, _, _,
_, _],
[_, _, _, _, _, _, _, _, _, _,
_, _],
[_, _, _, _, _, _, _, _, _, _,
_, _],
[_, _, _, _, _, _, _, _, _, _,
_, _],
[_, _, _, _, _, _, _, _, _, _,
_, _]]).
victory(
Who, [[_, _, _, _, _, _, _, _, _, _, _, _],
[_, _, _, _, _, _, _, _, _, _,
_, _],
[_, _, _, _, _, _, _, _, _, _,
_, _],
[_, _, _, _, _, _, _, _, _, _,
_, _],
[_, _, _, _, _, _, _, _, _, _,
_, _],
[Who, Who, Who, Who, Who, Who,
Who, Who, Who, Who, Who, Who],
[_, _, _, _, _, _, _, _, _, _,
_, _],
[_, _, _, _, _, _, _, _, _, _,
_, _],
[_, _, _, _, _, _, _, _, _, _,
_, _],
[_, _, _, _, _, _, _, _, _, _,
_, _],
[_, _, _, _, _, _, _, _, _, _,
_, _],
[_, _, _, _, _, _, _, _, _, _,
_, _]]).
victory(
Who, [[_, _, _, _, _, _, _, _, _, _, _, _],
[_, _, _, _, _, _, _, _, _, _,
_, _],
[_, _, _, _, _, _, _, _, _, _,
_, _],
[_, _, _, _, _, _, _, _, _, _,
_, _],
[_, _, _, _, _, _, _, _, _, _,
_, _],
[_, _, _, _, _, _, _, _, _, _,
_, _],
[Who, Who, Who, Who, Who, Who,
Who, Who, Who, Who, Who, Who],
[_, _, _, _, _, _, _, _, _, _,
_, _],
[_, _, _, _, _, _, _, _, _, _,
_, _],
[_, _, _, _, _, _, _, _, _, _,
_, _],
[_, _, _, _, _, _, _, _, _, _,
_, _],
[_, _, _, _, _, _, _, _, _, _,
_, _]]).
victory(
Who, [[_, _, _, _, _, _, _, _, _, _, _, _],
[_, _, _, _, _, _, _, _, _, _,
_, _],
[_, _, _, _, _, _, _, _, _, _, _, _],
[_, _, _, _, _, _, _, _, _, _,
_, _],
[_, _, _, _, _, _, _, _, _, _,
_, _],
[_, _, _, _, _, _, _, _, _, _,
_, _],
[_, _, _, _, _, _, _, _, _, _,
_, _],
[Who, Who, Who, Who, Who, Who,
Who, Who, Who, Who, Who, Who],
[_, _, _, _, _, _, _, _, _, _,
_, _],
[_, _, _, _, _, _, _, _, _, _,
_, _],
[_, _, _, _, _, _, _, _, _, _,
_, _],
[_, _, _, _, _, _, _, _, _, _, _,
_]]).
victory(
Who, [[_, _, _, _, _, _, _, _, _, _, _, _],
[_, _, _, _, _, _, _, _, _, _,
_, _],
[_, _, _, _, _, _, _, _, _, _,
_, _],
[_, _, _, _, _, _, _, _, _, _,
_, _],
[_, _, _, _, _, _, _, _, _, _,
_, _],
[_, _, _, _, _, _, _, _, _, _,
_, _],
[_, _, _, _, _, _, _, _, _, _,
_, _],
[_, _, _, _, _, _, _, _, _, _,
_, _],
[Who, Who, Who, Who, Who, Who,
Who, Who, Who, Who, Who, Who],
[_, _, _, _, _, _, _, _, _, _,
_, _],
[_, _, _, _, _, _, _, _, _, _,
_, _],
[_, _, _, _, _, _, _, _, _, _,
_, _]]).
victory(
Who, [[_, _, _, _, _, _, _, _, _, _, _, _],
[_, _, _, _, _, _, _, _, _, _,
_, _],
[_, _, _, _, _, _, _, _, _, _,
_, _],
[_, _, _, _, _, _, _, _, _, _,
_, _],
[_, _, _, _, _, _, _, _, _, _,
_, _],
[_, _, _, _, _, _, _, _, _, _,
_, _],
[_, _, _, _, _, _, _, _, _, _,
_, _],
[_, _, _, _, _, _, _, _, _, _,
_, _],
[_, _, _, _, _, _, _, _, _, _,
_, _],
[Who, Who, Who, Who, Who, Who,
Who, Who, Who, Who, Who, Who],
[_, _, _, _, _, _, _, _, _, _,
_, _],
[_, _, _, _, _, _, _, _, _, _,
_, _]]).
victory(
Who, [[_, _, _, _, _, _, _, _, _, _, _, _],
[_, _, _, _, _, _, _, _, _, _,
_, _],
[_, _, _, _, _, _, _, _, _, _,
_, _],
[_, _, _, _, _, _, _, _, _, _,
_, _],
[_, _, _, _, _, _, _, _, _, _,
_, _],
[_, _, _, _, _, _, _, _, _, _,
_, _],
[_, _, _, _, _, _, _, _, _, _,
_, _],
[_, _, _, _, _, _, _, _, _, _,
_, _],
[_, _, _, _, _, _, _, _, _, _,
_, _],
[_, _, _, _, _, _, _, _, _, _,
_, _],
[Who, Who, Who, Who, Who, Who,
Who, Who, Who, Who, Who, Who],
[_, _, _, _, _, _, _, _, _, _,
_, _]]).
victory(
Who, [[_, _, _, _, _, _, _, _, _, _, _, _],
[_, _, _, _, _, _, _, _, _, _,
_, _],
[_, _, _, _, _, _, _, _, _, _,
_, _],
[_, _, _, _, _, _, _, _, _, _, _, _],
[_, _, _, _, _, _, _, _, _, _,
_, _],
[_, _, _, _, _, _, _, _, _, _,
_, _],
[_, _, _, _, _, _, _, _, _, _,
_, _],
[_, _, _, _, _, _, _, _, _, _,
_, _],
[_, _, _, _, _, _, _, _, _, _,
_, _],
[_, _, _, _, _, _, _, _, _, _,
_, _],
[_, _, _, _, _, _, _, _, _, _,
_, _],
[Who, Who, Who, Who, Who, Who,
Who, Who, Who, Who, Who, Who]]).
%=========kondisi
menang vertikal=======%
victory(
Who, [[Who, _, _, _, _, _, _, _, _, _, _, _],
[Who, _, _, _, _, _, _, _, _, _,
_, _],
[Who, _, _, _, _, _, _, _, _, _,
_, _],
[Who, _, _, _, _, _, _, _, _, _,
_, _],
[Who, _, _, _, _, _, _, _, _, _,
_, _],
[Who, _, _, _, _, _, _, _, _, _,
_, _],
[Who, _, _, _, _, _, _, _, _, _,
_, _],
[Who, _, _, _, _, _, _, _, _, _,
_, _],
[Who, _, _, _, _, _, _, _, _, _,
_, _],
[Who, _, _, _, _, _, _, _, _, _,
_, _],
[Who, _, _, _, _, _, _, _, _, _,
_, _],
[Who, _, _, _, _, _, _, _, _, _,
_, _]]).
victory(
Who, [[_, Who, _, _, _, _, _, _, _, _, _, _],
[_, Who, _, _, _, _, _, _, _, _,
_, _],
[_, Who, _, _, _, _, _, _, _, _,
_, _],
[_, Who, _, _, _, _, _, _, _, _,
_, _],
[_, Who, _, _, _, _, _, _, _, _,
_, _],
[_, Who, _, _, _, _, _, _, _, _,
_, _],
[_, Who, _, _, _, _, _, _, _, _,
_, _],
[_, Who, _, _, _, _, _, _, _, _,
_, _],
[_, Who, _, _, _, _, _, _, _, _,
_, _],
[_, Who, _, _, _, _, _, _, _, _,
_, _],
[_, Who, _, _, _, _, _, _, _, _,
_, _],
[_, Who, _, _, _, _, _, _, _, _,
_, _]]).
victory(
Who, [[_, _, Who, _, _, _, _, _, _, _, _, _],
[_, _, Who, _, _, _, _, _, _, _,
_, _],
[_, _, Who, _, _, _, _, _, _, _,
_, _],
[_, _, Who, _, _, _, _, _, _, _,
_, _],
[_, _, Who, _, _, _, _, _, _, _,
_, _],
[_, _, Who, _, _, _, _, _, _, _,
_, _],
[_, _, Who, _, _, _, _, _, _, _,
_, _],
[_, _, Who, _, _, _, _, _, _, _,
_, _],
[_, _, Who, _, _, _, _, _, _, _,
_, _],
[_, _, Who, _, _, _, _, _, _, _,
_, _],
[_, _, Who, _, _, _, _, _, _, _, _, _],
[_, _, Who, _, _, _, _, _, _, _,
_, _]]).
victory(
Who, [[_, _, _, Who, _, _, _, _, _, _, _, _],
[_, _, _, Who, _, _, _, _, _, _,
_, _],
[_, _, _, Who, _, _, _, _, _, _,
_, _],
[_, _, _, Who, _, _, _, _, _, _,
_, _],
[_, _, _, Who, _, _, _, _, _, _,
_, _],
[_, _, _, Who, _, _, _, _, _, _,
_, _],
[_, _, _, Who, _, _, _, _, _, _,
_, _],
[_, _, _, Who, _, _, _, _, _, _,
_, _],
[_, _, _, Who, _, _, _, _, _, _,
_, _],
[_, _, _, Who, _, _, _, _, _, _,
_, _],
[_, _, _, Who, _, _, _, _, _, _,
_, _],
[_, _, _, Who, _, _, _, _, _, _,
_, _]]).
victory(
Who, [[_, _, _, _, Who, _, _, _, _, _, _, _],
[_, _, _, _, Who, _, _, _, _, _,
_, _],
[_, _, _, _, Who, _, _, _, _, _,
_, _],
[_, _, _, _, Who, _, _, _, _, _,
_, _],
[_, _, _, _, Who, _, _, _, _, _,
_, _],
[_, _, _, _, Who, _, _, _, _, _,
_, _],
[_, _, _, _, Who, _, _, _, _, _,
_, _],
[_, _, _, _, Who, _, _, _, _, _,
_, _],
[_, _, _, _, Who, _, _, _, _, _,
_, _],
[_, _, _, _, Who, _, _, _, _, _,
_, _],
[_, _, _, _, Who, _, _, _, _, _,
_, _],
[_, _, _, _, Who, _, _, _, _, _,
_, _]]).
victory(
Who, [[_, _, _, _, _, Who, _, _, _, _, _, _],
[_, _, _, _, _, Who, _, _, _, _,
_, _],
[_, _, _, _, _, Who, _, _, _, _,
_, _],
[_, _, _, _, _, Who, _, _, _, _,
_, _],
[_, _, _, _, _, Who, _, _, _, _,
_, _],
[_, _, _, _, _, Who, _, _, _, _,
_, _],
[_, _, _, _, _, Who, _, _, _, _, _,
_],
[_, _, _, _, _, Who, _, _, _, _,
_, _],
[_, _, _, _, _, Who, _, _, _, _,
_, _],
[_, _, _, _, _, Who, _, _, _, _,
_, _],
[_, _, _, _, _, Who, _, _, _, _,
_, _],
[_, _, _, _, _, Who, _, _, _, _,
_, _]]).
victory(
Who, [[_, _, _, _, _, _, Who, _, _, _, _, _],
[_, _, _, _, _, _, Who, _, _, _,
_, _],
[_, _, _, _, _, _, Who, _, _, _,
_, _],
[_, _, _, _, _, _, Who, _, _, _,
_, _],
[_, _, _, _, _, _, Who, _, _, _,
_, _],
[_, _, _, _, _, _, Who, _, _, _,
_, _],
[_, _, _, _, _, _, Who, _, _, _,
_, _],
[_, _, _, _, _, _, Who, _, _, _,
_, _],
[_, _, _, _, _, _, Who, _, _, _,
_, _],
[_, _, _, _, _, _, Who, _, _, _,
_, _],
[_, _, _, _, _, _, Who, _, _, _,
_, _],
[_, _, _, _, _, _, Who, _, _, _,
_, _]]).
victory(
Who, [[_, _, _, _, _, _, _, Who, _, _, _, _],
[_, _, _, _, _, _, _, Who, _, _,
_, _],
[_, _, _, _, _, _, _, Who, _, _,
_, _],
[_, _, _, _, _, _, _, Who, _, _,
_, _],
[_, _, _, _, _, _, _, Who, _, _,
_, _],
[_, _, _, _, _, _, _, Who, _, _,
_, _],
[_, _, _, _, _, _, _, Who, _, _,
_, _],
[_, _, _, _, _, _, _, Who, _, _,
_, _],
[_, _, _, _, _, _, _, Who, _, _,
_, _],
[_, _, _, _, _, _, _, Who, _, _,
_, _],
[_, _, _, _, _, _, _, Who, _, _,
_, _],
[_, _, _, _, _, _, _, Who, _, _,
_, _]]).
victory(
Who, [[_, _, _, _, _, _, _, _, Who, _, _, _],
[_, _, _, _, _, _, _, _, Who, _,
_, _],
[_, _, _, _, _, _, _, _, Who, _,
_, _],
[_, _, _, _, _, _, _, _, Who, _,
_, _],
[_, _, _, _, _, _, _, _, Who, _,
_, _],
[_, _, _, _, _, _, _, _, Who, _,
_, _],
[_, _, _, _, _, _, _, _, Who, _,
_, _],
[_, _, _, _, _, _, _, _, Who, _,
_, _],
[_, _, _, _, _, _, _, _, Who, _,
_, _],
[_, _, _, _, _, _, _, _, Who, _,
_, _],
[_, _, _, _, _, _, _, _, Who, _, _, _],
[_, _, _, _, _, _, _, _, Who, _,
_, _]]).
victory(
Who, [[_, _, _, _, _, _, _, _, _, Who, _, _],
[_, _, _, _, _, _, _, _, _, Who,
_, _],
[_, _, _, _, _, _, _, _, _, Who,
_, _],
[_, _, _, _, _, _, _, _, _, Who,
_, _],
[_, _, _, _, _, _, _, _, _, Who,
_, _],
[_, _, _, _, _, _, _, _, _, Who,
_, _],
[_, _, _, _, _, _, _, _, _, Who,
_, _],
[_, _, _, _, _, _, _, _, _, Who,
_, _],
[_, _, _, _, _, _, _, _, _, Who,
_, _],
[_, _, _, _, _, _, _, _, _, Who,
_, _],
[_, _, _, _, _, _, _, _, _, Who,
_, _],
[_, _, _, _, _, _, _, _, _, Who,
_, _]]).
victory(
Who, [[_, _, _, _, _, _, _, _, _, _, Who, _],
[_, _, _, _, _, _, _, _, _, _,
Who, _],
[_, _, _, _, _, _, _, _, _, _,
Who, _],
[_, _, _, _, _, _, _, _, _, _,
Who, _],
[_, _, _, _, _, _, _, _, _, _,
Who, _],
[_, _, _, _, _, _, _, _, _, _,
Who, _],
[_, _, _, _, _, _, _, _, _, _,
Who, _],
[_, _, _, _, _, _, _, _, _, _,
Who, _],
[_, _, _, _, _, _, _, _, _, _,
Who, _],
[_, _, _, _, _, _, _, _, _, _,
Who, _],
[_, _, _, _, _, _, _, _, _, _,
Who, _],
[_, _, _, _, _, _, _, _, _, _,
Who, _]]).
victory(
Who, [[_, _, _, _, _, _, _, _, _, _, _, Who],
[_, _, _, _, _, _, _, _, _, _,
_, Who],
[_, _, _, _, _, _, _, _, _, _,
_, Who],
[_, _, _, _, _, _, _, _, _, _,
_, Who],
[_, _, _, _, _, _, _, _, _, _,
_, Who],
[_, _, _, _, _, _, _, _, _, _,
_, Who],
[_, _, _, _, _, _, _, _, _, _, _,
Who],
[_, _, _, _, _, _, _, _, _, _,
_, Who],
[_, _, _, _, _, _, _, _, _, _,
_, Who],
[_, _, _, _, _, _, _, _, _, _,
_, Who],
[_, _, _, _, _, _, _, _, _, _,
_, Who],
[_, _, _, _, _, _, _, _, _, _,
_, Who]]).
%=====kondisi
menang diagonal 8 kotak====%
victory(
Who, [
[Who,
_, _, _, _, _, _, _, _, _, _, _],
[_,
Who, _, _, _, _, _, _, _, _, _, _],
[_,
_, Who, _, _, _, _, _, _, _, _, _],
[_,
_, _, Who, _, _, _, _, _, _, _, _],
[_,
_, _, _, Who, _, _, _, _, _, _, _],
[_,
_, _, _, _, Who, _, _, _, _, _, _],
[_,
_, _, _, _, _, Who, _, _, _, _, _],
[_,
_, _, _, _, _, _, Who, _, _, _, _],
[_,
_, _, _, _, _, _, _, Who, _, _, _],
[_,
_, _, _, _, _, _, _, _, Who, _, _],
[_,
_, _, _, _, _, _, _, _, _, Who, _],
[_,
_, _, _, _, _, _, _, _, _, _, Who]]).
victory(
Who, [
[_,
_, _, _, _, _, _, _, _, _, _, Who],
[_,
_, _, _, _, _, _, _, _, _, Who, _],
[_,
_, _, _, _, _, _, _, _, Who, _, _],
[_,
_, _, _, _, _, _, _, Who, _, _, _],
[_,
_, _, _, _, _, _, Who, _, _, _, _],
[_,
_, _, _, _, _, Who, _, _, _, _, _],
[_,
_, _, _, _, Who, _, _, _, _, _, _],
[_,
_, _, _, Who, _, _, _, _, _, _, _],
[_,
_, _, Who, _, _, _, _, _, _, _, _],
[_,
_, Who, _, _, _, _, _, _, _, _, _],
[_,
Who, _, _, _, _, _, _, _, _, _, _],
[Who,
_, _, _, _, _, _, _, _, _, _, _]]).
%=====kondisi
menang diagonal 4 kotak====%
victory(
Who, [
[_,
_, _, Who, _, _, _, _, _, _, _, _],
[_,
_, Who, _, _, _, _, _, _, _, _, _],
[_,
Who, _, _, _, _, _, _, _, _, _, _],
[Who,
_, _, _, _, _, _, _, _, _, _, _],
[_,
_, _, _, _, _, _, _, _, _, _, _],
[_,
_, _, _, _, _, _, _, _, _, _, _],
[_,
_, _, _, _, _, _, _, _, _, _, _],
[_,
_, _, _, _, _, _, _, _, _, _, _],
[_,
_, _, _, _, _, _, _, _, _, _, _],
[_,
_, _, _, _, _, _, _, _, _, _, _],
[_,
_, _, _, _, _, _, _, _, _, _, _],
[_,
_, _, _, _, _, _, _, _, _, _, _]]).
victory(
Who, [
[_,
_, _, _, _, _, _, _, Who, _, _, _],
[_,
_, _, _, _, _, _, _, _, Who, _, _],
[_,
_, _, _, _, _, _, _, _, _, Who, _],
[_,
_, _, _, _, _, _, _, _, _, _, Who],
[_,
_, _, _, _, _, _, _, _, _, _, _],
[_,
_, _, _, _, _, _, _, _, _, _, _],
[_,
_, _, _, _, _, _, _, _, _, _, _],
[_,
_, _, _, _, _, _, _, _, _, _, _],
[_,
_, _, _, _, _, _, _, _, _, _, _],
[_,
_, _, _, _, _, _, _, _, _, _, _],
[_,
_, _, _, _, _, _, _, _, _, _, _],
[_,
_, _, _, _, _, _, _, _, _, _, _]]).
victory(
Who, [
[_,
_, _, _, _, _, _, _, _, _, _, _],
[_,
_, _, _, _, _, _, _, _, _, _, _],
[_,
_, _, _, _, _, _, _, _, _, _, _],
[_,
_, _, _, _, _, _, _, _, _, _, _],
[_,
_, _, _, _, _, _, _, _, _, _, _],
[_,
_, _, _, _, _, _, _, _, _, _, _],
[_,
_, _, _, _, _, _, _, _, _, _, _],
[_,
_, _, _, _, _, _, _, _, _, _, _],
[_,
_, _, _, _, _, _, _, _, _, _, Who],
[_,
_, _, _, _, _, _, _, _, _, Who, _],
[_,
_, _, _, _, _, _, _, _, Who, _, _],
[_,
_, _, _, _, _, _, _, Who, _, _, _]]).
victory(
Who, [
[_,
_, _, _, _, _, _, _, _, _, _, _],
[_,
_, _, _, _, _, _, _, _, _, _, _],
[_,
_, _, _, _, _, _, _, _, _, _, _],
[_,
_, _, _, _, _, _, _, _, _, _, _],
[_,
_, _, _, _, _, _, _, _, _, _, _],
[_,
_, _, _, _, _, _, _, _, _, _, _],
[_,
_, _, _, _, _, _, _, _, _, _, _],
[_,
_, _, _, _, _, _, _, _, _, _, _],
[Who,
_, _, _, _, _, _, _, _, _, _, _],
[_,
Who, _, _, _, _, _, _, _, _, _, _],
[_,
_, Who, _, _, _, _, _, _, _, _, _],
[_,
_, _, Who, _, _, _, _, _, _, _, _]]).
%victory(
Who, [
%[_,
_, _, _, _, _, _, _, _, _, _, _],
%[_,
_, _, _, _, _, _, _, _, _, _, _],
%[_,
_, _, _, _, _, _, _, _, _, _, _],
%[_,
_, _, _, _, _, _, _, _, _, _, _],
%[_,
_, _, _, _, _, _, _, _, _, _, _],
%[_,
_, _, _, _, _, _, _, _, _, _, _],
%[_,
_, _, _, _, _, _, _, _, _, _, _],
%[_,
_, _, _, _, _, _, _, _, _, _, _],
%[_,
_, _, _, _, _, _, _, _, _, _, _],
%[_,
_, _, _, _, _, _, _, _, _, _, _],
%[_,
_, _, _, _, _, _, _, _, _, _, _],
%[Who,
_, _, _, _, _, _, _, _, _, _, _]]).
win(
o, Sit, Deep) :- move(o, Sit, Sit2), win(x, Sit2, Deep).
win(
x, Sit, _) :- victory(o, Sit).
win(
x, Sit, 0) :- !, fail.
win(
x, Sit, Deep) :- Deep1 is Deep - 1, not(nowin( x, Sit, Deep1)).
nowin(x,
Sit, _) :- not(move(Sit)). % the last move belongs to O
nowin(x,
Sit, Deep) :- move(x, Sit, Sit2), nowin(o, Sit2, Deep).
nowin(
o, Sit, _) :- victory(x, Sit).
nowin(o,
Sit, Deep) :- not(win(o, Sit, Deep)).
lose(
x, Sit, Deep) :- move(x, Sit, Sit2), lose(o, Sit2, Deep).
lose(
o, Sit, _) :- victory(x, Sit).
lose(
o, Sit, 0) :- !, fail.
lose(
o, Sit, Deep) :- Deep1 is Deep - 1, not(nolose( o, Sit, Deep1)).
nolose(o,
Sit, Deep) :- move(o, Sit, Sit2), nolose(x, Sit2, Deep).
nolose(
x, Sit, _) :- victory(o, Sit).
nolose(x,
Sit, _) :- not(move(Sit)). % the last move belongs to O
nolose(x,
Sit, Deep) :- not(lose(x, Sit, Deep)).
move(P,
Sit, Sit2) :-
member(Sit, L, Y),
member(L, f, X),
replace(L2, L, P, X),
replace(Sit2, Sit, L2, Y).
move(Sit)
:-
member(Sit, L, _),
member(L, f, _).
0 komentar:
Posting Komentar