Pages

Selasa, 11 Januari 2011

Project Prolog Othello

Kali ini saya akan me-review tentang tugas saya yaitu membuat game Othello 8x8 dengan menggunakan Strawberry Prolog.
Saya memakai Strawberry Prolog karena lebih mudah memahami. Langsung saja, Listing yang saya gunakan adalah sebagai berikut :

% This program is created by Hilda Rusdi
% from University of Gunadarma

?-
set(sit([[n,n,n,n,n,n,n,n],[n,n,n,n,n,n,n,n],[n,n,n,n,n,n,n,n],[n,n,n,b,w,n,n,n],[n,n,n,w,b,n,n,n],[n,n,n,n,n,n,n,n],[n,n,n,n,n,n,n,n],[n,n,n,n,n,n,n,n]])),
pen(2,rgb(0,0,0)),
window(_,_,win_func(_),"Game2",100,50,508,528).

win_func(paint):-
brush(rgb(0,0,250)),
rect(50,50,450,450),
for(I,0,9),
X is I * 50 + 50,
line(X,50,X,450),
line(50,X,450,X),
fail.

win_func(paint):-
brush(rgb(250,0,0)),
sit(H),
for(J,0,8),
for(I,0,8),
take(H,Line,J),
take(Line,b,I),
X is I*50 + 55,
Y is J*50 + 55,
X1 is X + 40,
Y1 is Y + 40,
rect(X,Y,X1,Y1),
fail.

win_func(paint):-
brush(rgb(250,250,0)),
sit(H),
for(J,0,8),
for(I,0,8),
take(H,Line,J),
take(Line,w,I),
X is I*50 + 55,
Y is J*50 + 55,
X1 is X + 40,
Y1 is Y + 40,
ellipse(X,Y,X1,Y1),
fail.

win_func(init) :-
menu(normal, _, _, menu_baru(_), "&Mulai"),
menu(normal, _, _, menu_keluar(_), "&Keluar").

menu_baru(press) :-
set(sit([[n,n,n,n,n,n,n,n],[n,n,n,n,n,n,n,n],[n,n,n,n,n,n,n,n],[n,n,n,b,w,n,n,n],[n,n,n,w,b,n,n,n],[n,n,n,n,n,n,n,n],[n,n,n,n,n,n,n,n],[n,n,n,n,n,n,n,n]])),
pen(2,rgb(0,0,0)),
window(_,_,win_func(_),"Game2",100,50,508,528).

menu_keluar(press) :-
close_window(_).

win_func(paint):-
brush(rgb(100,250,250)),
sit(M),
N1 is count_successes(victory(w,M)),
N2 is count_successes(victory(b,M)),
(N1>N2, N1+N2=:=64 ->
ask1
else (N1=N2, N1+N2=:=64 ->
ask3
else (N1
ask2
))),
(N2=:=0 ->
ask1
else (N1=:=0->
ask2
)),
fail.

win_func(paint).



win_func(mouse_click(X,Y)):-
X1 is (X - 40) // 50,
Y1 is (Y - 40) // 50,
X1 >= 0,
X1 =< 7,
Y1 >= 0,
Y1 =< 7,
sit(Sit1),
insert(X1,Y1,w),
sit(Sit2),
not(Sit1=Sit2),
win_func(paint),
wait(1),
take3(Sit2,n,X2,Y2),
insert(X2,Y2,b),
sit(Sit3),
not(Sit2=Sit3),
win_func(paint).

insert(X,Y,Who):-%trace,
sit(Sit),
take2(Sit,n,X,Y),
opposit(Who,NewWho),
for(WayX,-1,1),
for(WayY,-1,1),
sit(Sit2),
neighbour(NewWho,X,Y,Sit2,WayX,WayY),
jump(NewWho,X,Y,Sit2,WayX,WayY,NewX,NewY),
replace3(Result,Sit2,Who,X,Y,NewX,NewY,WayX,WayY),
set(sit(Result)),
fail.
insert(X,Y,Who).

neighbour(Who,X,Y,Sit,WayX,WayY):-
X1 is X+ WayX,
Y1 is Y+ WayY,
take2(Sit,Who,X1,Y1).

jump(Who,X,Y,Sit,WayX,WayY,X2,Y2):-
X1 is X+ WayX,
Y1 is Y+ WayY,
opposit(Who,NewWho),
neighbour(NewWho,X1,Y1,Sit,WayX,WayY),
X2 is X1+ WayX,
Y2 is Y1+ WayY.

jump(Who,X,Y,Sit,WayX,WayY,NewX,NewY):-
X1 is X+ WayX,
Y1 is Y+ WayY,
neighbour(Who,X1,Y1,Sit,WayX,WayY),
jump(Who,X1,Y1,Sit,WayX,WayY,NewX,NewY).

take3(Sit,El,0,0):-
take2(Sit,El,0,0).

take3(Sit,El,0,7):-
take2(Sit,El,0,7).

take3(Sit,El,7,0):-
take2(Sit,El,7,0).

take3(Sit,El,7,7):-
take2(Sit,El,7,7).

take3(Sit,El,X,Y):-
take2(Sit,El,X,Y).

take2(Sit,El,X,Y):-
take(Sit,Row,Y),
take(Row,El,X).

replace2(Result,Sit,El,X,Y):-
take(Sit,Line,Y),
replace(NewLine,Line,El,X),
replace(Result,Sit,NewLine,Y).

replace3(Result,Result,Who,X,Y,X,Y,WayX,WayY).
replace3(Result,Sit,Who,X,Y,ToX,ToY,WayX,WayY):-
replace2(ResultP,Sit,Who,X,Y),
X1 is X + WayX,
Y1 is Y + WayY,
replace3(Result,ResultP,Who,X1,Y1,ToX,ToY,WayX,WayY).

replace([New,B,C,D,E,F,G,H],[_,B,C,D,E,F,G,H],New,0).
replace([A,New,C,D,E,F,G,H],[A,_,C,D,E,F,G,H],New,1).
replace([A,B,New,D,E,F,G,H],[A,B,_,D,E,F,G,H],New,2).
replace([A,B,C,New,E,F,G,H],[A,B,C,_,E,F,G,H],New,3).
replace([A,B,C,D,New,F,G,H],[A,B,C,D,_,F,G,H],New,4).
replace([A,B,C,D,E,New,G,H],[A,B,C,D,E,_,G,H],New,5).
replace([A,B,C,D,E,F,New,H],[A,B,C,D,E,F,_,H],New,6).
replace([A,B,C,D,E,F,G,New],[A,B,C,D,E,F,G,_],New,7).


take([El,_,_,_,_,_,_,_],El,0).
take([_,El,_,_,_,_,_,_],El,1).
take([_,_,El,_,_,_,_,_],El,2).
take([_,_,_,El,_,_,_,_],El,3).
take([_,_,_,_,El,_,_,_],El,4).
take([_,_,_,_,_,El,_,_],El,5).
take([_,_,_,_,_,_,El,_],El,6).
take([_,_,_,_,_,_,_,El],El,7).

victory(Who,[[Who,_,_,_,_,_,_,_],_,_,_,_,_,_,_]).
victory(Who,[[_,Who,_,_,_,_,_,_],_,_,_,_,_,_,_]).
victory(Who,[[_,_,Who,_,_,_,_,_],_,_,_,_,_,_,_]).
victory(Who,[[_,_,_,Who,_,_,_,_],_,_,_,_,_,_,_]).
victory(Who,[[_,_,_,_,Who,_,_,_],_,_,_,_,_,_,_]).
victory(Who,[[_,_,_,_,_,Who,_,_],_,_,_,_,_,_,_]).
victory(Who,[[_,_,_,_,_,_,Who,_],_,_,_,_,_,_,_]).
victory(Who,[[_,_,_,_,_,_,_,Who],_,_,_,_,_,_,_]).

victory(Who,[_,[Who,_,_,_,_,_,_,_],_,_,_,_,_,_]).
victory(Who,[_,[_,Who,_,_,_,_,_,_],_,_,_,_,_,_]).
victory(Who,[_,[_,_,Who,_,_,_,_,_],_,_,_,_,_,_]).
victory(Who,[_,[_,_,_,Who,_,_,_,_],_,_,_,_,_,_]).
victory(Who,[_,[_,_,_,_,Who,_,_,_],_,_,_,_,_,_]).
victory(Who,[_,[_,_,_,_,_,Who,_,_],_,_,_,_,_,_]).
victory(Who,[_,[_,_,_,_,_,_,Who,_],_,_,_,_,_,_]).
victory(Who,[_,[_,_,_,_,_,_,_,Who],_,_,_,_,_,_]).

victory(Who,[_,_,[Who,_,_,_,_,_,_,_],_,_,_,_,_]).
victory(Who,[_,_,[_,Who,_,_,_,_,_,_],_,_,_,_,_]).
victory(Who,[_,_,[_,_,Who,_,_,_,_,_],_,_,_,_,_]).
victory(Who,[_,_,[_,_,_,Who,_,_,_,_],_,_,_,_,_]).
victory(Who,[_,_,[_,_,_,_,Who,_,_,_],_,_,_,_,_]).
victory(Who,[_,_,[_,_,_,_,_,Who,_,_],_,_,_,_,_]).
victory(Who,[_,_,[_,_,_,_,_,_,Who,_],_,_,_,_,_]).
victory(Who,[_,_,[_,_,_,_,_,_,_,Who],_,_,_,_,_]).

victory(Who,[_,_,_,[Who,_,_,_,_,_,_,_],_,_,_,_]).
victory(Who,[_,_,_,[_,Who,_,_,_,_,_,_],_,_,_,_]).
victory(Who,[_,_,_,[_,_,Who,_,_,_,_,_],_,_,_,_]).
victory(Who,[_,_,_,[_,_,_,Who,_,_,_,_],_,_,_,_]).
victory(Who,[_,_,_,[_,_,_,_,Who,_,_,_],_,_,_,_]).
victory(Who,[_,_,_,[_,_,_,_,_,Who,_,_],_,_,_,_]).
victory(Who,[_,_,_,[_,_,_,_,_,_,Who,_],_,_,_,_]).
victory(Who,[_,_,_,[_,_,_,_,_,_,_,Who],_,_,_,_]).

victory(Who,[_,_,_,_,[Who,_,_,_,_,_,_,_],_,_,_]).
victory(Who,[_,_,_,_,[_,Who,_,_,_,_,_,_],_,_,_]).
victory(Who,[_,_,_,_,[_,_,Who,_,_,_,_,_],_,_,_]).
victory(Who,[_,_,_,_,[_,_,_,Who,_,_,_,_],_,_,_]).
victory(Who,[_,_,_,_,[_,_,_,_,Who,_,_,_],_,_,_]).
victory(Who,[_,_,_,_,[_,_,_,_,_,Who,_,_],_,_,_]).
victory(Who,[_,_,_,_,[_,_,_,_,_,_,Who,_],_,_,_]).
victory(Who,[_,_,_,_,[_,_,_,_,_,_,_,Who],_,_,_]).

victory(Who,[_,_,_,_,_,[Who,_,_,_,_,_,_,_],_,_]).
victory(Who,[_,_,_,_,_,[_,Who,_,_,_,_,_,_],_,_]).
victory(Who,[_,_,_,_,_,[_,_,Who,_,_,_,_,_],_,_]).
victory(Who,[_,_,_,_,_,[_,_,_,Who,_,_,_,_],_,_]).
victory(Who,[_,_,_,_,_,[_,_,_,_,Who,_,_,_],_,_]).
victory(Who,[_,_,_,_,_,[_,_,_,_,_,Who,_,_],_,_]).
victory(Who,[_,_,_,_,_,[_,_,_,_,_,_,Who,_],_,_]).
victory(Who,[_,_,_,_,_,[_,_,_,_,_,_,_,Who],_,_]).

victory(Who,[_,_,_,_,_,_,[Who,_,_,_,_,_,_,_],_]).
victory(Who,[_,_,_,_,_,_,[_,Who,_,_,_,_,_,_],_]).
victory(Who,[_,_,_,_,_,_,[_,_,Who,_,_,_,_,_],_]).
victory(Who,[_,_,_,_,_,_,[_,_,_,Who,_,_,_,_],_]).
victory(Who,[_,_,_,_,_,_,[_,_,_,_,Who,_,_,_],_]).
victory(Who,[_,_,_,_,_,_,[_,_,_,_,_,Who,_,_],_]).
victory(Who,[_,_,_,_,_,_,[_,_,_,_,_,_,Who,_],_]).
victory(Who,[_,_,_,_,_,_,[_,_,_,_,_,_,_,Who],_]).


victory(Who,[_,_,_,_,_,_,_,[Who,_,_,_,_,_,_,_]]).
victory(Who,[_,_,_,_,_,_,_,[_,Who,_,_,_,_,_,_]]).
victory(Who,[_,_,_,_,_,_,_,[_,_,Who,_,_,_,_,_]]).
victory(Who,[_,_,_,_,_,_,_,[_,_,_,Who,_,_,_,_]]).
victory(Who,[_,_,_,_,_,_,_,[_,_,_,_,Who,_,_,_]]).
victory(Who,[_,_,_,_,_,_,_,[_,_,_,_,_,Who,_,_]]).
victory(Who,[_,_,_,_,_,_,_,[_,_,_,_,_,_,Who,_]]).
victory(Who,[_,_,_,_,_,_,_,[_,_,_,_,_,_,_,Who]]).

ask1:-
message("Game over","You are the winner.",!).


ask2:-
message("Game over","You lost this time.",!).


ask3:-
message("Game over","This game is equal.",!).


opposit(b,w).
opposit(w,b).


Sedangkan Output Programnya adalah :
Gambar diatas adalah gambar ketika permainan baru dimulai. Gambar diatas adalah gambar ketika kuning menang (mendominasi merah).
Gambar diatas adalah gambar ketika merah menang (mendominasi kuning).

Project Blender

Postingan saya kali ini berkaitan dengan tugas kuliah saya. Saya akan menjelaskan tentang BLENDER. BLENDER merupakan sebuah software tentang pembuatan gambar, design, maupun animasi 3D. Kalau ada yang mau download silahkan ke situs resminya di www.blender.org gratis kok, soalnya software ini open source. Jadi saya mempunyai konsep untuk membuat sebuah replika planet Bumi dengan menyertakan tulisan UNIVERSITAS GUNADARMA. Saya akan menjelaskan tentang tahap pembuatannya.

Tahap Pembuatan :
  1. Buka software BLENDER, kemudian buat sebuah bola. Caranya klik Add - Mesh - UVsphere. Kemudian set Segment : 32, Ring : 32, Radius : 3.00.
  2. Langkah berikutnya adalah menambahkan gambar permukaan Bumi pada bola tersebut. Pada panel Shading klik Material buttons lalu pilih Add New. Selanjutnya pada bagian Texture buttons pilih Add New. Lalu pada Texture Type pilih Image. Klik Load untuk membuat gambar permukaan Bumi. Gambar yang saya pakai adalah : Sebenarnya ketika di Render, gambarnya berporos pada sumbu Y. Jadi saya akan mengubahnya menjadi sumbu Z. Caranya adalah klik Material buttons pada panel Shading, kemudian klik pada Map Input lalu klik Sphe.
  3. Langkah selanjutnya adalah membuat background angkasa. Rasanya kurang jika hanya membuat replika planet Bumi tanpa adanya bintang-bintang. Caranya adalah klik World buttons pada panel Shading, lalu buat warnanya menjadi hitam. Selanjutnya saya akan membuat bintang dengan cara klik tab Mist/Stars/Physics. Kemudian klik Stars.
  4. Gambarnya sudah hampir jadi, hanya saja masih agak kasar. Jadi saya akan membuatnya lebih halus dengan cara klik Editing panel lalu klik Set Smooth pada tab Links and Materials.
  5. Langkah terakhir adalah membuat tulisan UNIVERSITAS GUNADARMA. Caranya klik Add - Text. Untuk mengedit kata-kata maka kita tekan tombol Tab setelah itu kita bisa memasukkan kata/kalimat yang kita inginkan. Lalu untuk membuat tulisan menjadi lebih tebal maka kita atur pada bagian Extrude. Hasilnya akan tampak seperti ini
  6. Langkah terakhir adalah proses rendering. Klik Render - Render Current Frame. Hasilnya akan tampak seperti ini.
Demikianlah penjelasan saya tentang Project Blender. Mohon maaf apabila ada kesalahan dalam pembuatan blog ini.
CMIIW.

Project Prolog Othello

Kali ini saya akan me-review tentang tugas saya yaitu membuat game Othello 8x8 dengan menggunakan Strawberry Prolog.
Saya memakai Strawberry Prolog karena lebih mudah memahami. Langsung saja, Listing yang saya gunakan adalah sebagai berikut :

% This program is created by Hilda Rusdi
% from University of Gunadarma

?-
set(sit([[n,n,n,n,n,n,n,n],[n,n,n,n,n,n,n,n],[n,n,n,n,n,n,n,n],[n,n,n,b,w,n,n,n],[n,n,n,w,b,n,n,n],[n,n,n,n,n,n,n,n],[n,n,n,n,n,n,n,n],[n,n,n,n,n,n,n,n]])),
pen(2,rgb(0,0,0)),
window(_,_,win_func(_),"Game2",100,50,508,528).

win_func(paint):-
brush(rgb(0,0,250)),
rect(50,50,450,450),
for(I,0,9),
X is I * 50 + 50,
line(X,50,X,450),
line(50,X,450,X),
fail.

win_func(paint):-
brush(rgb(250,0,0)),
sit(H),
for(J,0,8),
for(I,0,8),
take(H,Line,J),
take(Line,b,I),
X is I*50 + 55,
Y is J*50 + 55,
X1 is X + 40,
Y1 is Y + 40,
rect(X,Y,X1,Y1),
fail.

win_func(paint):-
brush(rgb(250,250,0)),
sit(H),
for(J,0,8),
for(I,0,8),
take(H,Line,J),
take(Line,w,I),
X is I*50 + 55,
Y is J*50 + 55,
X1 is X + 40,
Y1 is Y + 40,
ellipse(X,Y,X1,Y1),
fail.

win_func(init) :-
menu(normal, _, _, menu_baru(_), "&Mulai"),
menu(normal, _, _, menu_keluar(_), "&Keluar").

menu_baru(press) :-
set(sit([[n,n,n,n,n,n,n,n],[n,n,n,n,n,n,n,n],[n,n,n,n,n,n,n,n],[n,n,n,b,w,n,n,n],[n,n,n,w,b,n,n,n],[n,n,n,n,n,n,n,n],[n,n,n,n,n,n,n,n],[n,n,n,n,n,n,n,n]])),
pen(2,rgb(0,0,0)),
window(_,_,win_func(_),"Game2",100,50,508,528).

menu_keluar(press) :-
close_window(_).

win_func(paint):-
brush(rgb(100,250,250)),
sit(M),
N1 is count_successes(victory(w,M)),
N2 is count_successes(victory(b,M)),
(N1>N2, N1+N2=:=64 ->
ask1
else (N1=N2, N1+N2=:=64 ->
ask3
else (N1
ask2
))),
(N2=:=0 ->
ask1
else (N1=:=0->
ask2
)),
fail.

win_func(paint).



win_func(mouse_click(X,Y)):-
X1 is (X - 40) // 50,
Y1 is (Y - 40) // 50,
X1 >= 0,
X1 =< 7,
Y1 >= 0,
Y1 =< 7,
sit(Sit1),
insert(X1,Y1,w),
sit(Sit2),
not(Sit1=Sit2),
win_func(paint),
wait(1),
take3(Sit2,n,X2,Y2),
insert(X2,Y2,b),
sit(Sit3),
not(Sit2=Sit3),
win_func(paint).

insert(X,Y,Who):-%trace,
sit(Sit),
take2(Sit,n,X,Y),
opposit(Who,NewWho),
for(WayX,-1,1),
for(WayY,-1,1),
sit(Sit2),
neighbour(NewWho,X,Y,Sit2,WayX,WayY),
jump(NewWho,X,Y,Sit2,WayX,WayY,NewX,NewY),
replace3(Result,Sit2,Who,X,Y,NewX,NewY,WayX,WayY),
set(sit(Result)),
fail.
insert(X,Y,Who).

neighbour(Who,X,Y,Sit,WayX,WayY):-
X1 is X+ WayX,
Y1 is Y+ WayY,
take2(Sit,Who,X1,Y1).

jump(Who,X,Y,Sit,WayX,WayY,X2,Y2):-
X1 is X+ WayX,
Y1 is Y+ WayY,
opposit(Who,NewWho),
neighbour(NewWho,X1,Y1,Sit,WayX,WayY),
X2 is X1+ WayX,
Y2 is Y1+ WayY.

jump(Who,X,Y,Sit,WayX,WayY,NewX,NewY):-
X1 is X+ WayX,
Y1 is Y+ WayY,
neighbour(Who,X1,Y1,Sit,WayX,WayY),
jump(Who,X1,Y1,Sit,WayX,WayY,NewX,NewY).

take3(Sit,El,0,0):-
take2(Sit,El,0,0).

take3(Sit,El,0,7):-
take2(Sit,El,0,7).

take3(Sit,El,7,0):-
take2(Sit,El,7,0).

take3(Sit,El,7,7):-
take2(Sit,El,7,7).

take3(Sit,El,X,Y):-
take2(Sit,El,X,Y).

take2(Sit,El,X,Y):-
take(Sit,Row,Y),
take(Row,El,X).

replace2(Result,Sit,El,X,Y):-
take(Sit,Line,Y),
replace(NewLine,Line,El,X),
replace(Result,Sit,NewLine,Y).

replace3(Result,Result,Who,X,Y,X,Y,WayX,WayY).
replace3(Result,Sit,Who,X,Y,ToX,ToY,WayX,WayY):-
replace2(ResultP,Sit,Who,X,Y),
X1 is X + WayX,
Y1 is Y + WayY,
replace3(Result,ResultP,Who,X1,Y1,ToX,ToY,WayX,WayY).

replace([New,B,C,D,E,F,G,H],[_,B,C,D,E,F,G,H],New,0).
replace([A,New,C,D,E,F,G,H],[A,_,C,D,E,F,G,H],New,1).
replace([A,B,New,D,E,F,G,H],[A,B,_,D,E,F,G,H],New,2).
replace([A,B,C,New,E,F,G,H],[A,B,C,_,E,F,G,H],New,3).
replace([A,B,C,D,New,F,G,H],[A,B,C,D,_,F,G,H],New,4).
replace([A,B,C,D,E,New,G,H],[A,B,C,D,E,_,G,H],New,5).
replace([A,B,C,D,E,F,New,H],[A,B,C,D,E,F,_,H],New,6).
replace([A,B,C,D,E,F,G,New],[A,B,C,D,E,F,G,_],New,7).


take([El,_,_,_,_,_,_,_],El,0).
take([_,El,_,_,_,_,_,_],El,1).
take([_,_,El,_,_,_,_,_],El,2).
take([_,_,_,El,_,_,_,_],El,3).
take([_,_,_,_,El,_,_,_],El,4).
take([_,_,_,_,_,El,_,_],El,5).
take([_,_,_,_,_,_,El,_],El,6).
take([_,_,_,_,_,_,_,El],El,7).

victory(Who,[[Who,_,_,_,_,_,_,_],_,_,_,_,_,_,_]).
victory(Who,[[_,Who,_,_,_,_,_,_],_,_,_,_,_,_,_]).
victory(Who,[[_,_,Who,_,_,_,_,_],_,_,_,_,_,_,_]).
victory(Who,[[_,_,_,Who,_,_,_,_],_,_,_,_,_,_,_]).
victory(Who,[[_,_,_,_,Who,_,_,_],_,_,_,_,_,_,_]).
victory(Who,[[_,_,_,_,_,Who,_,_],_,_,_,_,_,_,_]).
victory(Who,[[_,_,_,_,_,_,Who,_],_,_,_,_,_,_,_]).
victory(Who,[[_,_,_,_,_,_,_,Who],_,_,_,_,_,_,_]).

victory(Who,[_,[Who,_,_,_,_,_,_,_],_,_,_,_,_,_]).
victory(Who,[_,[_,Who,_,_,_,_,_,_],_,_,_,_,_,_]).
victory(Who,[_,[_,_,Who,_,_,_,_,_],_,_,_,_,_,_]).
victory(Who,[_,[_,_,_,Who,_,_,_,_],_,_,_,_,_,_]).
victory(Who,[_,[_,_,_,_,Who,_,_,_],_,_,_,_,_,_]).
victory(Who,[_,[_,_,_,_,_,Who,_,_],_,_,_,_,_,_]).
victory(Who,[_,[_,_,_,_,_,_,Who,_],_,_,_,_,_,_]).
victory(Who,[_,[_,_,_,_,_,_,_,Who],_,_,_,_,_,_]).

victory(Who,[_,_,[Who,_,_,_,_,_,_,_],_,_,_,_,_]).
victory(Who,[_,_,[_,Who,_,_,_,_,_,_],_,_,_,_,_]).
victory(Who,[_,_,[_,_,Who,_,_,_,_,_],_,_,_,_,_]).
victory(Who,[_,_,[_,_,_,Who,_,_,_,_],_,_,_,_,_]).
victory(Who,[_,_,[_,_,_,_,Who,_,_,_],_,_,_,_,_]).
victory(Who,[_,_,[_,_,_,_,_,Who,_,_],_,_,_,_,_]).
victory(Who,[_,_,[_,_,_,_,_,_,Who,_],_,_,_,_,_]).
victory(Who,[_,_,[_,_,_,_,_,_,_,Who],_,_,_,_,_]).

victory(Who,[_,_,_,[Who,_,_,_,_,_,_,_],_,_,_,_]).
victory(Who,[_,_,_,[_,Who,_,_,_,_,_,_],_,_,_,_]).
victory(Who,[_,_,_,[_,_,Who,_,_,_,_,_],_,_,_,_]).
victory(Who,[_,_,_,[_,_,_,Who,_,_,_,_],_,_,_,_]).
victory(Who,[_,_,_,[_,_,_,_,Who,_,_,_],_,_,_,_]).
victory(Who,[_,_,_,[_,_,_,_,_,Who,_,_],_,_,_,_]).
victory(Who,[_,_,_,[_,_,_,_,_,_,Who,_],_,_,_,_]).
victory(Who,[_,_,_,[_,_,_,_,_,_,_,Who],_,_,_,_]).

victory(Who,[_,_,_,_,[Who,_,_,_,_,_,_,_],_,_,_]).
victory(Who,[_,_,_,_,[_,Who,_,_,_,_,_,_],_,_,_]).
victory(Who,[_,_,_,_,[_,_,Who,_,_,_,_,_],_,_,_]).
victory(Who,[_,_,_,_,[_,_,_,Who,_,_,_,_],_,_,_]).
victory(Who,[_,_,_,_,[_,_,_,_,Who,_,_,_],_,_,_]).
victory(Who,[_,_,_,_,[_,_,_,_,_,Who,_,_],_,_,_]).
victory(Who,[_,_,_,_,[_,_,_,_,_,_,Who,_],_,_,_]).
victory(Who,[_,_,_,_,[_,_,_,_,_,_,_,Who],_,_,_]).

victory(Who,[_,_,_,_,_,[Who,_,_,_,_,_,_,_],_,_]).
victory(Who,[_,_,_,_,_,[_,Who,_,_,_,_,_,_],_,_]).
victory(Who,[_,_,_,_,_,[_,_,Who,_,_,_,_,_],_,_]).
victory(Who,[_,_,_,_,_,[_,_,_,Who,_,_,_,_],_,_]).
victory(Who,[_,_,_,_,_,[_,_,_,_,Who,_,_,_],_,_]).
victory(Who,[_,_,_,_,_,[_,_,_,_,_,Who,_,_],_,_]).
victory(Who,[_,_,_,_,_,[_,_,_,_,_,_,Who,_],_,_]).
victory(Who,[_,_,_,_,_,[_,_,_,_,_,_,_,Who],_,_]).

victory(Who,[_,_,_,_,_,_,[Who,_,_,_,_,_,_,_],_]).
victory(Who,[_,_,_,_,_,_,[_,Who,_,_,_,_,_,_],_]).
victory(Who,[_,_,_,_,_,_,[_,_,Who,_,_,_,_,_],_]).
victory(Who,[_,_,_,_,_,_,[_,_,_,Who,_,_,_,_],_]).
victory(Who,[_,_,_,_,_,_,[_,_,_,_,Who,_,_,_],_]).
victory(Who,[_,_,_,_,_,_,[_,_,_,_,_,Who,_,_],_]).
victory(Who,[_,_,_,_,_,_,[_,_,_,_,_,_,Who,_],_]).
victory(Who,[_,_,_,_,_,_,[_,_,_,_,_,_,_,Who],_]).


victory(Who,[_,_,_,_,_,_,_,[Who,_,_,_,_,_,_,_]]).
victory(Who,[_,_,_,_,_,_,_,[_,Who,_,_,_,_,_,_]]).
victory(Who,[_,_,_,_,_,_,_,[_,_,Who,_,_,_,_,_]]).
victory(Who,[_,_,_,_,_,_,_,[_,_,_,Who,_,_,_,_]]).
victory(Who,[_,_,_,_,_,_,_,[_,_,_,_,Who,_,_,_]]).
victory(Who,[_,_,_,_,_,_,_,[_,_,_,_,_,Who,_,_]]).
victory(Who,[_,_,_,_,_,_,_,[_,_,_,_,_,_,Who,_]]).
victory(Who,[_,_,_,_,_,_,_,[_,_,_,_,_,_,_,Who]]).

ask1:-
message("Game over","You are the winner.",!).


ask2:-
message("Game over","You lost this time.",!).


ask3:-
message("Game over","This game is equal.",!).


opposit(b,w).
opposit(w,b).


Sedangkan Output Programnya adalah :
Gambar diatas adalah gambar ketika permainan baru dimulai. Gambar diatas adalah gambar ketika kuning menang (mendominasi merah).
Gambar diatas adalah gambar ketika merah menang (mendominasi kuning).

Project Blender

Postingan saya kali ini berkaitan dengan tugas kuliah saya. Saya akan menjelaskan tentang BLENDER. BLENDER merupakan sebuah software tentang pembuatan gambar, design, maupun animasi 3D. Kalau ada yang mau download silahkan ke situs resminya di www.blender.org gratis kok, soalnya software ini open source. Jadi saya mempunyai konsep untuk membuat sebuah replika planet Bumi dengan menyertakan tulisan UNIVERSITAS GUNADARMA. Saya akan menjelaskan tentang tahap pembuatannya.

Tahap Pembuatan :

  1. Buka software BLENDER, kemudian buat sebuah bola. Caranya klik Add - Mesh - UVsphere. Kemudian set Segment : 32, Ring : 32, Radius : 3.00.
  2. Langkah berikutnya adalah menambahkan gambar permukaan Bumi pada bola tersebut. Pada panel Shading klik Material buttons lalu pilih Add New. Selanjutnya pada bagian Texture buttons pilih Add New. Lalu pada Texture Type pilih Image. Klik Load untuk membuat gambar permukaan Bumi. Gambar yang saya pakai adalah : Sebenarnya ketika di Render, gambarnya berporos pada sumbu Y. Jadi saya akan mengubahnya menjadi sumbu Z. Caranya adalah klik Material buttons pada panel Shading, kemudian klik pada Map Input lalu klik Sphe.
  3. Langkah selanjutnya adalah membuat background angkasa. Rasanya kurang jika hanya membuat replika planet Bumi tanpa adanya bintang-bintang. Caranya adalah klik World buttons pada panel Shading, lalu buat warnanya menjadi hitam. Selanjutnya saya akan membuat bintang dengan cara klik tab Mist/Stars/Physics. Kemudian klik Stars.
  4. Gambarnya sudah hampir jadi, hanya saja masih agak kasar. Jadi saya akan membuatnya lebih halus dengan cara klik Editing panel lalu klik Set Smooth pada tab Links and Materials.
  5. Langkah terakhir adalah membuat tulisan UNIVERSITAS GUNADARMA. Caranya klik Add - Text. Untuk mengedit kata-kata maka kita tekan tombol Tab setelah itu kita bisa memasukkan kata/kalimat yang kita inginkan. Lalu untuk membuat tulisan menjadi lebih tebal maka kita atur pada bagian Extrude. Hasilnya akan tampak seperti ini
  6. Langkah terakhir adalah proses rendering. Klik Render - Render Current Frame. Hasilnya akan tampak seperti ini.
Demikianlah penjelasan saya tentang Project Blender. Mohon maaf apabila ada kesalahan dalam pembuatan blog ini.
CMIIW.

 
Copyright 2012 Hilda's blog. Powered by Blogger
Blogger by Blogger Templates and Images by Wpthemescreator
Personal Blogger Templates