Senin, 29 November 2010

Benda - benda unik dari Coklat

Coklat...Hmmm,, mendengar namanya saja. Pasti pada ngiler deh. hehehe.
Yaiyalah,, mayoritas manusia terutama wanita pasti suka sama coklat. Tak peduli coklat bisa bikin gemuk atau apalah.. Yang kita tahu bahwa.. Coklat itu enakkkk bgt.. :D

Nah, sekarang saya mau membahas benda-benda yang terbuat dari coklat. Asli lhooo..
Yukkk kita lihat..

1. Perangko Coklat

     Satu set nya terdiri atas 24 perangko yang berbahan dasar cokelat.

2. Sepatu Coklat


3.  Coklat yang berbentuk huruf-huruf
     Huruf -huruf nya bisa di taruh dimana saja di tempat yang kita inginkan lhooo...



4.  Paku cokelat

     Kalo paku beneran mah pasti ngeri. Tapi klo dari coklat ngeri gak yah??

Kamis, 25 November 2010

KETOMBE BASAH

Banyak yang berkata rambut adalah mahkota wanita, namun jika tidak dirawat dengan baik. Maka rambut kita akan mengalami banyak kerusakan.  Salah satunya adalah Ketombe.

Apabila anda mengalami ketombe basah (berminyak),. Langkah awal yang harus dilakukan tentunya mengganti shampoo dengan shampoo khusus untuk ketombe. Rambut dan kulit kepala harus selalu dalam keadaan bersih agar tidak menimbulkan gatal yang berpeluang menyebabkan luka dan infeksi berkelanjutan.

Dibawah ini ada beberapa cara alternatif untuk mengatasi ketombe yang menyebalkan.

a      Oleskan  daging lidah buaya pada kulit kepala, biarkan 15 menit.

b      Oleskan perasan buah lemon atau jeruk nipis pada kulit kepala sesaat sebelum mencuci rambut (keramas). Biarkan sejenak, bilas dan tambahkan perasan air jeruk pada bilasan air yang terakhir. Ini adalah pengobatan alamiah yang baik untuk mangatasi ketombe basah.

c      Ambil cuka, tambahkan perasan jeruk nipis, dan oleskan pada kulit kepala yang sudah dibasahi air secukupnya. Biarkan dan bilas.

d      Seminggu sekali oleskan telur yang telah dikocok pada kulit kepala . Biarkan sesaat sebelum dibilas.

Yang harus diperhatikan :

-          Lakukan pemijatan kulit kepala setiap hari selama 15 menit.

-          Hentikan semua produk tata rias rambut (hair spray, dll).

-          Sikatlah rambut dengan sikat rambut yang lembut setiap hari

-          Perbanyak makan buah dan sayuran segar.

Kalau upaya demi upaya  belum membuahkan hasil , sebaiknya konsultasikan dengan dokter spesialis.  Semoga bermanfaat...

Rabu, 24 November 2010

Aplikasi Kompresi Gambar menggunakan MATLAB

         
Kelompok :
Wenny Rahmawati (50407891)
Achmad Thohir      (50407016)



          Pengolahan Citra adalah Pemrosesan citra, khususnya dengan menggunakan komputer, menjadikan citra dengan kualitas yang lebih baik. Pengolahan Citra bertujuan untuk memperbaiki kualitas citra agar mudah diinterprestasi oleh manusia atau mesin (dalam hal ini komputer). Teknik-teknik pengolahan citra mentransformasikan citra menjadi citra lain, salah satunya adalah kompresi citra (image compression). Jadi, masukannya adalah citra dan keluarannya juga citra, namun citra keluarannya mempunyai ukuran citra lebih kecil daripada citra masukannya.

         Kompresi merupakan proses untuk menghilangkan berbagai kerumitan yang tidak penting (redudansi) dari suatu informasi dengan cara memadatkan isi file sehingga ukurannya menjadi lebih kecil dengan memaksimalkan kesederhanaannya dan tetap menjaga kualitas penggambaran dari informasi tersebut. Aplikasi kompresi yang saya buat menggunakan masukan (input) berupa citra dengan beberapa format seperti format JPEG, Bitmap, PNG, dan TIF dan menghasilkan keluaran (output) berupa citra dengan format JPEG.

Langkah – langkah pembuatan Program Kompresi

A.    Membuat Desain Figure
        Aplikasi kompresi ini dibuat menggunakan MATLAB 7.1 dengan membuat sebuah user interface MATLAB dengan fasilitas GUIDE. Untuk membuat sebuah user interface dimulai dengan mmbuat desain sebuah figure dengan memanfaatkan uicontrol (control user interface) yang tersedia di editor figure. Uicontrol yang digunakan untuk membuat aplikasi kompresi ini adalah :

      1. Axes
         Axes digunakan untuk menampilkan sebuah grafik atau gambar (image). Pada pembuatan aplikasi ini digunakan 2 Axes yang digunakan untuk menampilkan citra asli dan citra kompresi.
     2. Static Text
         Static Text akan menghasilkan teks bersifat tetap sehingga user tidak dapat melakukan perubahan. Teks dan beberapa fasilitas lainnya dapat diatur dalam static text. Seperti jenis dan ukuran font, warna dll. Pada pembuatan aplikasi kompresi ini terdapat 2 static text yaitu Nama file untuk citra masukan dan Nama file untuk citra keluaran.
    3. Pushbutton
       Pushbutton merupakan jenis control berupa tombol tekan yang akan menghasilkan sebuah tindakan jika diklik. Pada pembuatan aplikasi ini, pushbutton yang digunakan adalah Pilih Gambar, Kompres dan Keluar.

Minggu, 21 November 2010

PERKEMBANGAN BAYI DALAM KANDUNGAN MINGGU PER MINGGU (0-12 MINGGU)





Mingggu ke-1:
Pada minggu ini, menjadi menstruasi yang terakhir sebelum kehamilan. Pendarahan terjadi dan hormon-hormon ditubuh mepersiakan sel telur untuk dilepaskan.

Minggu ke-2:
Uterus (dinding rahim) menebal dan mempersiapkan untuk tahap ovulasi.

Minggu ke-3:
Merupakan masa ovulasi (pelepasan telur). Kehamilan terjadi pada saat ini. Pembuahan terjadi pada saat sperma dari pasangan anda bertem dengan sel telur anda di tuba falopi. Pembuahan memerlukan waktu 4hari, setelah telur dibuahi maka dinamakan zygote.

Minggu ke-4:
Inilah saat dimana zygote  kecil untuk menemukan tempat didalam rahim anda. Dengan berakhirnya minggu ini, anda tidak mendapat menstruasi, dan menjadi tanda pertama kemungkinan kehamilan. Pada beberapa wanita mendapatkan sedikit pendarahan dan disalahartikan sebagai menstruasi, sebenarna pendarahan yang sedikit itu karena implatasi dari zygote  ke dinding rahim anda.

Minggu ke-5:
Ukuran bayi anda sekarang sekitar biji aple dan pada minggu ini disebut sebagai embrio. Bayi anda sudah mempunyai detak jantung sendiri, plasenta dan tali pusat sudah bekerja sepenuhnya pada minggu ini. Vesikel-vesikel otak primer mulai terbentuk, sistem saraf mulai berkembang.

Selasa, 09 November 2010

OBAMA Oh OBAMA


Siapakah yang tak mengenal orang nomor 1 yang memimpin negara adidaya? Yap!! Orang tersebut adalah Barrack Husein Obama. Presiden Amerika Serikat yang  pernah tinggal di Indonesia menghabiskan masa kecilnya. Bahkan beliau pernah mengeyam pendidikan di SDN MENTENG 01 JAK-PUS.
            Barrack Obama tiba di Indonesia pada tanggal 09-11-2010 pukul 17.00 dan melakukan pendaratan di bandara Halim perdana kusuma. Beliau datang dengan beberapa agenda antara lain mengadakan pertemuan bilateral dengan presiden SBY untuk  membicarakan masalah ekonomi. Esok hari tanggal 10-11-2010 bertepatan dengan hari pahlawan. Obama akan mengunjungi  Masjid terbesar se Asia Tenggara yaitu Masjid Istiqlal untuk mengetahui perkembangan Islam. Selama kedatangannya ke masjid Istiqlal, Masjid istiqlal akan ditutup selama 4   jam dari pukul 06.00-10.00. Sepenting itukah Obama hingga menutup tempat ibadah untuk beberapa saat ??
            Selanjutnya beliau melanjutkan agenda perjalanannya ke Universitas Indonesia untuk mengadakan kuliah Umum, tepatnya di balairung UI. Karena kedatangannya itulah pihak Universitas Indonesia meliburkan perkuliahan dari hari ini hingga besok. Kurang lebih 1 jam, Obama mengadakan kuliah Umum.Akan tetapi hanya segelintir orang saja yang mendapatkan kesempatan untuk menghadiri kuliah Umum yang diisi oleh Obama. Setelah itu, Obama akan melanjutkan perjalanan terakhirnya ke Taman Makam Pahlawan di Kalibata untuk mengikuti perayaan hari pahlawan.  Dari taman makam pahlawan, Obama akan langsung bertolak ke negara Korea Selatan.
            Terdapat berbagai macam efek yang timbul bersamaan dengan datangnya presiden Barrack Obama antara lain jalan-jalan utama di  Jakarta menjadi macet pastinya karena penjagaan beliau yang ekstra ketat yang menjadikan jalanan tersebut ditutup untuk sementara waktu.  Tak hanya kepolisian dan tentara Indonesia saja yang dikerahkan, tetapi pihak keamanan Amerika Serikat yang sering disebut dengan US Secure Service  juga telah ditugaskan untuk menjaga Barrack Obama.  Selain itu, Rupiah menguat di angka Rp 8905,00. 
            Melihat pemandangan di atas, saya sempat teringat dengan kedatangan Mantan Presiden George W. Bush di Bogor beberapa tahun silam. Beberapa jam sebelum kedatangannya, jalan utama di Bogor ditutup, penjagaan diperketat 3x lipat, dan bahkan keadaan yang sangat menyesakkan adalah saluran telepon di kota Bogor diputus untuk beberapa jam. Keadaan tersebut hampira sama dengan kedatangan Barrack Obama kali ini. Hanya saja saya tidak mengetahui dengan jelas apakah saluran telepon di Jakarta diputus juga??
Lantas, pertanyaan yang tersirat dalam diri saya. Sepenting itukah Seorang penguasa (Presiden) Amerika Serikat?? Hingga membuat masyarakt Indonesia “sedikit” terganggu dan terusik keamanannya??
Tak jarang presiden dari negara lain datang mengunjungi Indonesia, tapi tak pernah seheboh ketika presiden Amerika Serikat datang..


.....Obama Oh Obama....

Kamis, 04 November 2010

PROPOSAL BISNIS APLIKASI KASIR PT. REATECHNO INDONESIA

PROPOSAL BISNIS
APLIKASI KASIR PT. REATECHNO INDONESIA















Kantor Pusat:
Bougenville Residence
Jl. Taman Puspa no.29-Jaksel
Telp/Fax:021-23297890/021-23297891


Minggu, 31 Oktober 2010

BAWANG MERAH, Manfaat yang terabaikan

Bawang merah tidak akan pernah lepas dari kehidupan sehari-hari masyarakat Indonesia. Bahkan sejarah mencatat bahwa bawang merah sudah dikenal sejak berabad-abad lamanya. Salah satunya dimanfaatkan bagi para pekerja yang terlibat pembangunan piramida Mesir sebagai penambah kekuatan tubuh. Menurut catatan, para pekerja itu diberi makan akar lobak dan bawang merah. Selain itu, bawang merah juga digunakan oleh para gladiator zaman Romawi kuno. Bawang merah digosokkan ke sekujur tubuh. Para gladiator berkeyakinan bahwa bawang merah memiliki khasiat untuk mendapatkan kondisi darah yang prima.

Secara umum, saat ini orang cenderung menggunakan bawang merah sebagai bagian dari bumbu masak. Di beberapa daerah Indonesia, pemakaiaannya dalam bentuk mentah dalam jumlah cukup banyak merupakan bagian dari tradisi makanan tradisional setempat.

Aneka Penggunaan

Bawang merah berasal dari tanaman bernama ilmiah Allium cepa suku Liliaceae. Bagian yang digunakan adalah umbi yang berada di dalam tanah. Karena mudah tumbuh , maka tanaman ini pun cepat menyebar ke seantero dunia. Dalam sejarah tercatat bahwa Cristopher Columbus lah yang membawa bawang merah ke Amerika Utara sebagai bagian dari perjalanan pertualangannya pada 1942. Saat ini, berbagai tipe dan variasi tanaman mudah dijumpai dimana-mana, dan ternyata variasi itu menentukan pula kualitas produk umbi bawang merah yang dihasilkan.
Melalui sejarah sebenarnya sudah tercatat bahwa dokter menuliskan resep bawang merah untuk menjaga kelancaran proses buang air besar , menyembuhkan sakit kepala, batuk, luka akibat gigitan ular dan rambut rontok.

Selasa, 12 Oktober 2010

Diary Depresiku..

Malam ini hujan turun lagi
bersama kenangan yg mungkin luka di hati
luka yg harusnya dpt terobati
yg ku harap tiada pernah terjadi

ku ingat saat ayah pergi
dan kami mulai kelaparan
hal yg biasa buat aku hidup di jalanan
di saat ku belum mengerti
arti sbuah perceraian yg hancurkan smua hal indah
yang dulu pernah aku miliki

wajar bila saat ini, ku iri pada kalian
yg hidup bahagia berkat suasana indah dlm rumah
hal slalu aku bandingkan dgn hidupku yg kelam
tiada harga diri agar hidupku terus bertahan.

mungkin sejenak dapat aku lupakan
dgn minuman keras yg saat ini ku genggam
atau menggoreskan kaca dilenganku
apapun kan ku lakukan.
ku ingin lupakan.



Remaja saat ini pasti banyak yang familiar dengan lagu ini,, saya disini mencoba mengulas apa isi dari lagu ini..

Dari pandangan saya, lagu ini menceritakan bagaimana perasaan anak-anak korban perceraian orang tua. Ketika kehidupan yang aman, tentram serta damai berubah menjadi kehidupan tanpa kasih sayang orang tua...

Segala cara dilakukan untuk melupakan kesedihan dalam dirinya, mencoba mencari perhatian agar ia merasakan kasih sayang seperti kehidupan keluarga pada umumnya..

Mungkin ini merupakan bentuk apresiasi yang salah, karna ia beralih ke dunia kelam agar melupakan beban pikirannya..

Teruntuk teman-teman yang dalam keadaan seperti di lagu tersebut, semoga slalu tabah dan sabar dalam menghadapi ujian ini. Coba kita lihat hikmah yang dapat kita petik dari ujian hidup tersebut..

Tetep semangat kawan!!! Semua indah pada waktunya..
(n_n)V

Kamis, 30 September 2010

Sejuta Manfaat Buah Sirsak

Buah sirsak selama ini dipandang sebelah mata. Sebagai komoditi, tak banyak petani yang secara serius menanamnya. Tak aneh kalau mendapatkan sirsak di pasar modern dibeberapa daerah agak sulit. Ketka petani tidak berminat untuk menanam pohon sirsak, sebaliknya ilmuwan mulai tertarik untuk menguak misteri yang terdapat didalamnya.
Ketertarikan dunia ilmu pengetahuan dekat kaitannya dengan penggunaan tumbuhan sirsak dalam pengobatan rakyat untk mendapatkan keadaan sehat, termasuk gangguan jantung, liver, asma artritis dll.
Yang mencengangkan, perkembangan penelitian sudah memberikan gambaran khasiat sirsak untuk mengatasi gangguan berbagai jenis kanker.

Anti Kanker

Bagian tanaman sirsak termasuk daun dan buah mengandung senyawa yang cukup bernilai seperti fruktosa, lemak, protein, kalsium, fosfor, besi, vitamin A, vitamin B, Metabolit sekunder yang terkandung di dalamnya adalah senyawa golongan tanin, fistosterol, dan alkaloida.
Sebuah senyawa yang menarik bagi para peneliti yaitu asetogenin. Asetogenin adalah senyawa yang spesifik terkandung di dalam tanaman suku Annonaceae, yang khasiatnya erat berkaitan dengan aktivitas anti tumor, anti bakteri dan insektisida.
Banyak penelitian ilmiah yang sudah dilakkan sehubungan dengan aktivitas antitumor dari bagian daun tanaman, dimana hasilnya sudah erbukti. Penelitian itu juga sudah dilakukan untuk memperlajari jenis sel kanker yang dapat diobati, dimana hasilnya menunjukkan bahwa asetogenin yang terkandung di dalam sirsak bisa dipakai untuk menghantam sel kanker usus, pankreas, ovarium, usus besar, payudara, liver dan serviks.
Sebuah penelitian lain dengan hewan percobaan memang membuktikan terdapatnya aktivitas antioksidan dari senyawa kandungan sirsak. Kalau memang benar, maka tentu khasiat anti kanker salah satunya berkaitan dengan kemampuan senyawa untuk melindungi sel tubuh yang sehat dari kerusakan yang memicu serangan kanker.
Dalam sistem pengobatan tradisional India Aryuveda, sirsak mempunyai reputasi yang hebat sebagai antikanker. Dukungan hasil penelitian membuktikan bahwa daun tanaman ini mengandung senyawa asetogenin bernama bullatasin dari buah tanaman Annona lain yaitu Annona atemoya.
Senyawa ini ternyata dapat menginduksi apoptosis. Senyawa asetogenin lain yaitu murisin, murikatetrosin, longifolisin, korossolin dan korossolan terbukti memberikan hasil positif sebagai sitotoksik terhadap sel tumor.

Mengatasi Diabetes.

Salah satu pemakain yang menarik perhatian peneliti untuk mengendalikan kenaikan kada gula darah alias diabetes. Jenis penelitian untuk membuktikan khasiat sebagai anti diabetes ini cukup bervaiasi sehingga mekanisme kerjanya secara perlahan mulai dapat diungkapkan.

Sebuah penelitian yang dilakukan untuk membuktikan mekanisme kerja antidiabetes ekstrak daun sirsak terbukti bahwa terdapat regenerasi set islet pada kelenjar pankreas hewan percobaan tikus. Hal tersebut meberikan harapan, pemberian ekstrak daun apat memperbaiki fungsi kelenjar sebagai penghasil insulin yang diperlukan penderita diabetes.

Sabtu, 25 September 2010

Manfaat Pepaya Mentah




Pepaya bukanlah buah langka di Indonesia. Pepaya juga salah satu buah kegemaran anak-anak, karena rasanya yang manis dan warnanya yang menarik, orange seperti The Jak (hehehehe)..
Beraneka ragam cara kita dalam menikmati buah pepaya. Bagi anak kecil pepaya bisa disantap langsung sebagai cemilan apalagi dalam keadaan dingin (wuihhh...seger deh). Bagi para remaja dan ibu-ibu lebih senang menikmati dalam bentuk makanan Rujak ( Pedes ya bang...).
Tapi, Bukan hanya pepaya matang atau pepaya setengah matang (mengkel) yang dapat di konsumsi.
Pepaya mentah juga bisa di konsumsi, bahkan banyak manfaat nya loh...

Getah buah pepaya mengandung enzim pencerna yang disebut papain. Papain pada pepaya mentah sangat membantu mengatasi gangguan pada lambung, misalnya pada keadaan kekurangan asam lambung, kembung, dan iritasi usus.

Papain juga merupakan salah satu obat cacing yang ampuh. Campurkan satu sendok makan jus buah segar, madu dalam jumlah sama, tiga sampai empat sendok makan air hangat. Aduk rata dan minumlah separuh jumlah itu untuk anak usia 7 sampai 10 tahun.
Setelah minum campuran tersebut, dua jam berikutnya minumlah campuran 30 ml minyak kastor dalam 250 ml susu hangat. Jika perlu, lakukan pengobatan tersebut selama dua hari. Untuk anak usia dibawah 3 tahun cukup minum satu sendok teh campuran tersebut.

Jus pepaya mentah juga efektif untuk mengatasi gangguan pada kulit wajah, termasuk jerawat, luka bernanah dan cocok untuk menghilangkan noda hitam. Selain itu, pepaya mentah juga baik untuk mengatasi gangguan kelancaran haid.

Nah, udah tau khan apa aja manfaat pepaya mentah. Bagi yang ingin mencoba, silahkan...

Senin, 31 Mei 2010

Games CATUR menggunakan bahasa PROLOG

Siapa sih yang gak kenal permainan catur? Permainan yang didalamnya terdapat beberapa pasukan antara lain : pion (prajurit), kuda, raja, ratu dll. Setiap pasukan (bagian) memiliki cara berjalan yang berbeda-beda. Sebelum saya menjelaskan mengenai permainan catur lebih jauh...

Permainan ini di buat menggunakan bahasa pemrograman prolog..

Prolog merupakan singkatan dari “Programing In Logic”. Prolog juga merupakan salah satu bahasa pemrograman yang bersifat Open source. jadi, apabila anda ingin mencoba permainan catur ini , anda dapat harus terlebih dahulu mengunduh Prolog.

Prolog pertama kali dikembangkan oleh Alain Colmetrouer dan P.Roussel di Universitas Marseilles Prancis tahun 1972. Selama tahun 70-an, prolog menjadi ppuler di Eropa untuk aplikasi AI. Sedangkandi Amerika Serikat, para peneliti juga mengmbangkan bahas lain untuk aplikasi yang sama yaitu LISP. LISP mempunyai kelebihan dibandingkan prolog, tetapi LISP lebih sulit dipelajari..
Dengan adanya Compiler Prolog, kecepatan eksekusi program dapat ditingkatkan, namun Prolog masih dipandang sebagai bahasa yang terbahas (hanya digunakan di kalangan perguruan tinggi dan riset).

a. Aplikasi Prolog
Prolog digunakan khususnya dibidang kecerdasan buatan (Artificial Intelegent) meliputi bidang :
• Sistem Pakar
• Pengolahan bahas alami (Natural Language Processing)
• Robotik
• Logika dan ketidakpastian
• Pengenalan pola dan gambarame
• Simulasi pengolahan simbol


Berikut ini adalah coding permainan catur menggunakan bahasa PROLOG :

level(1, 2, 1, 5).
level(2, 3, 3, 15).
level(3, 4, 6, 30).
level(4, 5, 30, 150).

?-
G_AuCh=0,
G_Level=2,
G_Deep=0,
G_Move=0,
G_Forward=0,
G_I=0,
G_Play_with_Blacks=0,
G_Play_with_Computer=1,
array(val,100,0),
array(maximum,100,0),
array(i,1000,0),
array(j,1000,0),
array(x,1000,0),
array(y,1000,0),
array(val2,1000,0),
array(index,1000,0),
G_chessboard is bitmap_image("chess_pic\\chessboard.bmp",_),
G_squareW is bitmap_image("chess_pic\\squareW.bmp",_),
G_squareB is bitmap_image("chess_pic\\squareB.bmp",_),
G_PawnW1 is bitmap_image("chess_pic\\PawnW1.bmp",_),
G_PawnW2 is bitmap_image("chess_pic\\PawnW2.bmp",_),
G_PawnB1 is bitmap_image("chess_pic\\PawnB1.bmp",_),
G_PawnB2 is bitmap_image("chess_pic\\PawnB2.bmp",_),
G_KingW1 is bitmap_image("chess_pic\\KingW1.bmp",_),
G_KingW2 is bitmap_image("chess_pic\\KingW2.bmp",_),
G_KingB1 is bitmap_image("chess_pic\\KingB1.bmp",_),
G_KingB2 is bitmap_image("chess_pic\\KingB2.bmp",_),
G_QueenW1 is bitmap_image("chess_pic\\QueenW1.bmp",_),
G_QueenW2 is bitmap_image("chess_pic\\QueenW2.bmp",_),
G_QueenB1 is bitmap_image("chess_pic\\QueenB1.bmp",_),
G_QueenB2 is bitmap_image("chess_pic\\QueenB2.bmp",_),
G_BishopW1 is bitmap_image("chess_pic\\BishopW1.bmp",_),
G_BishopW2 is bitmap_image("chess_pic\\BishopW2.bmp",_),
G_BishopB1 is bitmap_image("chess_pic\\BishopB1.bmp",_),
G_BishopB2 is bitmap_image("chess_pic\\BishopB2.bmp",_),
G_KnightW1 is bitmap_image("chess_pic\\KnightW1.bmp",_),
G_KnightW2 is bitmap_image("chess_pic\\KnightW2.bmp",_),
G_KnightB1 is bitmap_image("chess_pic\\KnightB1.bmp",_),
G_KnightB2 is bitmap_image("chess_pic\\KnightB2.bmp",_),
G_RookW1 is bitmap_image("chess_pic\\RookW1.bmp",_),
G_RookW2 is bitmap_image("chess_pic\\RookW2.bmp",_),
G_RookB1 is bitmap_image("chess_pic\\RookB1.bmp",_),
G_RookB2 is bitmap_image("chess_pic\\RookB2.bmp",_),
window(G_Win,_,chess_func(_),"Chess",10,150,512,550).

levelm(init):-
menu(normal,_,_,l2(_),"&Beginner"),
menu(checked,_,_,l3(_),"&Normal"),
menu(normal,_,_,l4(_),"&Advanced"),
menu(normal,_,_,l5(_),"&Expert"),
menu(separator, _,_,fail(_),_),
menu(normal,_,_,automatic_change(_),"Automatic change of the Deep").

l2(press):-change_level(1).
l3(press):-change_level(2).
l4(press):-change_level(3).
l5(press):-change_level(4).

automatic_change(press):-
G_AuCh:=1-G_AuCh,
(G_AuCh=0->
modify_menu(G_Menu1,6,normal,_)
else
modify_menu(G_Menu1,6,checked,_)
).

change_level(M):-
G_Deep:=0,
modify_menu(G_Menu1,G_Level,normal,_),
G_Level:=M, modify_menu(G_Menu1,M,checked,_).

changem(init):-
menu(normal,_,_,play_with_blacks(_),"&Play with Blacks"),
menu(checked,_,_,play_with_computer(_),"&Play with the computer").

play_with_blacks(press):-
(G_Play_with_Computer=0->
message("", "You can change the side only when you play with the computer!", s)
else
change_side,
pos(G_Move, C1, WantsStalemate, Pos),
G_WantsStalemate:=0-WantsStalemate,
opposite(C1, C2),
computer(C1,C2,Pos)
).

change_side:-
G_Play_with_Blacks:=1-G_Play_with_Blacks,
(G_Play_with_Blacks=0->
modify_menu(G_Menu2,1,normal,_)
else
modify_menu(G_Menu2,1,checked,_)
).

play_with_computer(press):-
G_Play_with_Computer:=1-G_Play_with_Computer,
(G_Play_with_Computer=0->
modify_menu(G_Menu2,2,normal,_)
else
modify_menu(G_Menu2,2,checked,_)
).

back(press):-
G_Move:=G_Move - 1,
(G_Move=0->
modify_menu(G_Win,3,grayed,_),
draw_menu_bar(_)
),
(G_Forward=0->
modify_menu(G_Win,4,normal,_),
draw_menu_bar(_)
),
G_Forward:=G_Forward + 1,
set_some_text,
update_window(_).

forward(press):-
(G_Move=0->
modify_menu(G_Win,3,normal,_),
draw_menu_bar(_)
),
G_Move:=G_Move + 1,
G_Forward:=G_Forward - 1,
(G_Forward=0->
modify_menu(G_Win,4,grayed,_),
draw_menu_bar(_)
),
set_some_text,
update_window(_).

set_some_text:-
pos(G_Move, C, _, _),
(G_Play_with_Blacks=\=true_value(C=b)->
change_side
),
(C=b->
set_text("Play with Blacks", _)
else (C=w->
set_text("Play with Whites", _)
else
set_text("Game Over", _)
)).

set_pos(C, Pos) :-
(G_Move=0->
modify_menu(G_Win,3,normal,_),
draw_menu_bar(_)
),
(G_Forward>0->
modify_menu(G_Win,4,grayed,_),
draw_menu_bar(_)
),
G_Move:=G_Move+1,
G_Forward:=0,
write(pos(G_Move, C, G_WantsStalemate, Pos)),nl,
retractall(pos(G_Move,_,_,_)),
assert(pos(G_Move,C,G_WantsStalemate,Pos)).

chess_func(init):-
menu(pop_up, G_Menu1,_,levelm(_),"&Level"),
menu(pop_up, G_Menu2,_,changem(_),"&Change"),
menu( right, _, _, back(_), "&Back"),
menu( right, _, _, forward(_), "&Forward"),
modify_menu(G_Win,3,grayed,_),
modify_menu(G_Win,4,grayed,_).

chess_func(paint):-
draw_bitmap(0,0,G_chessboard,_,_),
fail.

chess_func(paint):-
pos(G_Move, _, _, Pos),
mem(Row, Pos,J),
mem(Fig, Row,I),
draw_fig(Fig,I,J),
fail.

chess_func(mouse_click(X,Y)):-
I :=X//50,
J :=Y//50,
I>0, I=<8,
J>0, J=<8,
pos(G_Move, C1, WantsStalemate, Pos),
opposite(C1, C2),
mem(Row,Pos,J),
mem(Fig,Row,I),
(G_I=0 ->
Fig=[_|C1],
G_Fig:=Fig,
clean_field(I, J),
G_I:=I,
G_J:=J
else (can_move(G_Fig,G_I,G_J,I,J,Pos,Fig2), not(Fig2=[_|C1])->
move0(G_I,G_J,Pos,I,J,Pos2),
(check(C1, C2, Pos2)->
message("Bad move", "You are in check after this move", !),
draw_fig(G_Fig,G_I,G_J),
G_I:=0,
fail
),
(J/\6=:=0->
(G_Fig=[p|C1]->
draw_fig([q|C1],I,J)
else (G_Fig=[k|C1], abs(G_I-I)=:=2 ->
(I=3, Xm=4, Xf=1; I=7, Xm=6, Xf=8),
clean_field(Xf, J),
draw_fig([r|C1],Xm,J),
draw_fig([k|C1],I,J)
else
draw_fig(G_Fig,I,J)
))
else
draw_fig(G_Fig,I,J)
),
val(Fig2,Val),
G_WantsStalemate:=WantsStalemate+Val,
(check(C2, C1, Pos2), not(not_mate(C2, C1, Pos2))->
set_pos(n,Pos2),
set_text("Mate. You won!", _),
message("Congratulations", "You won!", !),
fail
),
(G_Play_with_Computer=1->
computer(C2,C1,Pos2)
else
change_side,
G_WantsStalemate:=0-G_WantsStalemate,
set_pos(C2, Pos2),
set_text(xy(G_I, G_J)+":"+xy(I, J)+ (G_Play_with_Blacks=1-> " (Play with Blacks)" else ""), _),
G_I:=0
)
else
draw_fig(G_Fig,G_I,G_J),
G_I:=0
)).

computer(C2,C1,Pos2):-
G_I:=0,
set_text("...", _),
G_I1:=0,
(G_Deep=0->level(G_Level,Deep,_,_), G_Deep:=Deep),
write("Deep="+G_Deep),nl,
chronometer(_),
chronometer_steps(_),
maximum(G_Deep):= -20000,
Moves:=0,
(play(C2,C1,Pos2,G_Deep,Moves); true),
chronometer(Time),
chronometer_steps(Steps),
beep,
write(maximum(G_Deep)+" for "+Time/1000+" seconds ("+Steps+" steps)"),nl,
(G_AuCh=1->
level(G_Level,_,Minimum,Maximun),
(Time<1000*Minimum->
G_Deep:=G_Deep+1,
write("Deep+1="+G_Deep),nl
else (Time>1000*Maximun, G_Deep>2->
G_Deep:=G_Deep- 1,
write("Deep-1="+G_Deep),nl
))
),
(G_I1=0->
set_pos(n, Pos2),
set_text("Stalemate", _),
message("Stalemate", "I am in stalemate. This gane is draw.", !),
fail
),
mem(Row1,Pos2,G_J1),
mem(Fig,Row1,G_I1),
can_move(Fig,G_I1,G_J1,G_I2,G_J2,Pos2,Fig2),
val(Fig2,Val),
G_WantsStalemate:=G_WantsStalemate-Val,
move0(G_I1,G_J1,Pos2,G_I2,G_J2,Pos3),
clean_field(G_I1, G_J1),
mem(Row2,Pos3,G_J2),
mem(BFig,Row2,G_I2),
(BFig=[k|C2], abs(G_I1-G_I2)=:=2 ->
(G_I2=3, XXm=4, XXf=1; G_I2=7, XXm=6, XXf=8),
clean_field(XXf, G_J2),
draw_fig([r|C2],XXm,G_J2),
draw_fig([k|C2],G_I2,G_J2)
else
draw_fig(BFig,G_I2,G_J2)
),
(check(C1, C2, Pos3)->
(not_mate(C1, C2, Pos3)->
set_text("Check", _)
else
set_pos(n, Pos3),
set_text("You are Mate!", _),
message("Mate. Game over", "Sorry but you lost this set.", s),
fail
)
else
set_text(xy(G_I1, G_J1)+":"+xy(G_I2, G_J2)+ (G_Play_with_Blacks=1-> " (Play with Blacks)" else ""), _)
),
(not(mem(Row3,Pos3,J1), mem([F1|C1],Row3,I1), can_move([F1|C1],I1,J1,_,_,Pos3,Fig3), not(Fig3=[_|C1]))->
set_pos(n, Pos3),
set_text("Stalemate", _),
message("Stalemate", "You are in stalemate. This game is draw.", !),
fail
),
(not(mem(Row4,Pos3,_), mem([F2|_],Row4,_), F2\=k)->
set_pos(n, Pos3),
set_text("Tie", _),
message("Tie", "This game is draw.", !),
fail
),
set_pos(C1, Pos3).

play(C1,C2,Pos,Deep,Moves):-
Deep1 is Deep - 1,
(Deep1=0->
(val(Deep):=35;
mem(Row,Pos,J),
mem([Fig|C1],Row,I),
can_move([Fig|C1],I,J,X,Y,Pos,[Fig2|C2]),
take_val(Fig,Fig2,Val2,C1,C2,X,Y,Pos),
val(Deep):=Val2)
else
Moves2:=Moves,
all_moves(C1,Pos,Deep,I,J,X,Y,Val2,Moves,Moves2),
move(I,J,Pos,X,Y,Pos2,Val2),
val(Deep):=Val2,
(Val2>5000->
(Deep=:=G_Deep- 1, check(C2, C1, Pos)->
maximum(Deep1):= -5000
else
maximum(Deep1):=0
)
else
maximum(Deep1):= -20000,
(play(C2,C1,Pos2,Deep1,Moves2); true),
(maximum(Deep1) =:= -20000->
(check(C2, C1, Pos2)->
maximum(Deep1):= -10000-Deep
else
maximum(Deep1):= (1 - 2* ((G_Deep-Deep1) mod 2))*G_WantsStalemate
)
)
)
),
%(Deep=G_Deep-> write(xy(I,J)+":"+xy(X,Y)+" is "+ (val(Deep)-maximum(Deep1))), nl),
(maximum(Deep) % =< in order to see all best
maximum(Deep):=val(Deep)-maximum(Deep1),
(Deep=G_Deep->
write(xy(I,J)+":"+xy(X,Y)+" is "+ (val(Deep)-maximum(Deep1))), nl,
G_I1:=I, G_J1:=J,
G_I2:=X, G_J2:=Y,
fail
else (maximum(Deep+1) % =< in order to see all best

fail
%else
%write(Deep) % alpha-beta cutting
))
else
fail
),
!,
fail.

all_moves(C1,Pos,Deep,_,_,_,_,_,Moves,Moves2):-
mem(Row,Pos,J),
mem([Fig|C1],Row,I),
Sum1:=0,
can_hit([Fig|C1],I,J,Pos,shadow,no,Sum1),
can_move([Fig|C1],I,J,X,Y,Pos,Fig2),
not(Fig2=[_|C1]),
(Fig2=[p|_]->
Val is (C1=w-> 60+20*Y else 240- 20*Y)
else
val(Fig2,Val)
),
Val2 is Val-Sum1+Deep* (1+sign(Val//18- 1)), % 18 is val(p)
find_the_right_place(Val2,Moves,Moves2,Place),
i(Moves2):=I, j(Moves2):=J,
x(Moves2):=X, y(Moves2):=Y,
val2(Moves2):=Val2,
index(Place):=Moves2,
Moves2:=Moves2+1,
fail.
all_moves(_,_,_,I,J,X,Y,Val2,Moves,Moves2):-
for(N, Moves, Moves2- 1),
I is i(index(N)), J is j(index(N)),
X is x(index(N)), Y is y(index(N)),
Val2 is val2(index(N)).

find_the_right_place(Val2,M,M,M):- !.
find_the_right_place(Val2,Moves,Moves2,Place):-
MovesP is Moves2- 1,
(val2(index(MovesP))
index(Moves2):=index(MovesP),
find_the_right_place(Val2,Moves,MovesP,Place)
else
Moves2=Place
).

can_hit([Fig|C1],I,J,Pos,_,Try,Sum):- % the figure hits
can_move([Fig|C1],I,J,_,_,Pos,F),
(F=[Fig2|C]->
(C=C1->
Sum:=Sum+8
else
val([Fig2|_],Val2),
val([Fig|_],Val1),
(Val1
(Fig2=k->
(Try=no; not_mate(C, C1, Pos)->
Sum:=Sum+50
else
Sum:=Val2
)
else
Sum:=Sum+33
)
else
Sum:=Sum+12
)
)
else
Sum:=Sum+4
),
fail.
can_hit([Fig|C1],I,J,Pos,Shadow,_,Sum):- % other figures hit it
can_move([F|C_1],I,J,I0,J0,Pos,[F|C_2]),
not(F=p, C_1=C_2),
not(F=k, C_1=C_2),
(C_2=C1->
Sum:=Sum+ 4 % 8-4
else
val([F|_],Val2),
val([Fig|_],Val1),
(Val1>Val2->
(Fig=k->
Sum:=Sum- 46 % 50-4
else
Sum:=Sum- 29 % 33-4
)
else
Sum:=Sum- 8 % 12-4
)
),
throw_shadow(Shadow,[F|C_2],I0,J0,I,J,Pos,SumT),
(C_2=C1->
Sum:=Sum-SumT
else
Sum:=Sum+SumT
),
fail.
can_hit(_,_,_,_,_,_,_).

throw_shadow(shadow,[F|C_2],I1,J1,I2,J2,Pos,Sum):-
Sum:=0,
(F=r; F=q),
(I1=I2->
(J1
move_down(I2,J2,_,_,Pos,Fig)
else
move_up(I2,J2,_,_,Pos,Fig)
)
else (J1=J2->
(I1
move_right(I2,J2,_,_,Pos,Fig)
else
move_left(I2,J2,_,_,Pos,Fig)
)
else
fail
)),
hit([F|C_2],Fig,Sum).
throw_shadow(shadow,[F|C_2],I1,J1,I2,J2,Pos,Sum):-
(F=b; F=q),
(I1+J1=:=I2+J2->
(I1
move_right_up(I2,J2,_,_,Pos,Fig)
else
move_left_down(I2,J2,_,_,Pos,Fig)
)
else (I1-J1=:=I2-J2->
(I1
move_right_down(I2,J2,_,_,Pos,Fig)
else
move_left_up(I2,J2,_,_,Pos,Fig)
)
else
fail
)),
hit([F|C_2],Fig,Sum).
throw_shadow(shadow,[_|_],_,_,_,_,_,_).

hit([Fig|C1],F,Sum):-
(F=[Fig2|C]->
(C=C1->
Sum:=Sum+8
else
val([Fig2|_],Val2),
val([Fig|_],Val1),
(Val1
(Fig2=k->
Sum:=Sum+50
else
Sum:=Sum+33
)
else
Sum:=Sum+12
)
)
else
Sum:=Sum+4
),
fail.

move(I1,J1,Pos1,I2,J2,Pos2,Sum):-
mem(Row, Pos1, J1),
mem([F1|C1], Row, I1),
replace(f, Row, Row2,I1),
replace(Row2, Pos1, Pos1a, J1),
mem(Row3, Pos1a, J2),
(J2/\6=:=0->
(F1=p->
replace([q|C1], Row3, Row4, I2)
else (F1=k, abs(I1-I2)=:=2 ->
(I2=3, Xm=4, Xf=1; I2=7, Xm=6, Xf=8),
Sum:=Sum+50,
replace(f, Row3, Row3a, Xf),
replace([r|C1], Row3a, Row3b, Xm),
replace([F1|C1], Row3b, Row4, I2)
else
replace([F1|C1], Row3, Row4, I2)
))
else
replace([F1|C1], Row3, Row4, I2)
),
replace(Row4, Pos1a, Pos2,J2),
(mem([F2|C2], Row3, I2)->
Sum1:=0,
can_hit([F2|C2],I2,J2,Pos2,no,no,Sum1),
Sum:=Sum-Sum1,
can_hit([F1|C1],I2,J2,Pos2,no,try,Sum)
else
can_hit([F1|C1],I2,J2,Pos2,shadow,try,Sum)
).

move0(I1,J1,Pos1,I2,J2,Pos2):-
mem(Row, Pos1, J1),
mem([F1|C1], Row, I1),
replace(f, Row, Row2,I1),
replace(Row2, Pos1, Pos1a, J1),
mem(Row3, Pos1a, J2),
(J2/\6=:=0->
(F1=p->
replace([q|C1], Row3, Row4, I2)
else (F1=k, abs(I1-I2)=:=2 ->
(I2=3, Xm=4, Xf=1; I2=7, Xm=6, Xf=8),
replace(f, Row3, Row3a, Xf),
replace([r|C1], Row3a, Row3b, Xm),
replace([F1|C1], Row3b, Row4, I2)
else
replace([F1|C1], Row3, Row4, I2)
))
else
replace([F1|C1], Row3, Row4, I2)
),
replace(Row4, Pos1a, Pos2,J2).

val(f,0).
val(p,18). % Pawn move
val(d,35). % Pawn double move = 2*val(p)-1
val([p|_],100).
val([h|_],300).
val([b|_],300).
val([r|_],500).
val([q|_],1000).
val([n|_],600). % new queen
val([t|_],700). % new queen and take
val([k|_],10000).

take_val(p,p,60|_). take_val(p,h,250|_). take_val(p,b,250|_). take_val(p,r,450|_). take_val(p,q,950|_). take_val(p,k,10000|_).
take_val(k,p,100|_). take_val(k,h,300|_). take_val(k,b,300|_). take_val(k,r,500|_). take_val(k,q,1000|_). take_val(k,k,10000|_).
take_val(h|T):-
evaluate(300|T).
take_val(b|T):-
evaluate(300|T).
take_val(r|T):-
evaluate(500|T).
take_val(q|T):-
evaluate(1000|T).

evaluate(Val1,Fig,Val,C1,C2,X,Y,Pos):-
val([Fig|_],Val2),
(Val2>Val1->
Val is Val2 - Val1//2
else (can_move([F|C1],X,Y,_,_,Pos,[F|C2])->
Val=50
else
val([Fig|_],Val)
)).

%pos(0,w,0,[[rb,hb,bb,qb,kb,bb,hb,rb],[f,pb,f,f,f,f,pb,f],[f,f,f,pb,f,pb,f,f],[pb,f,pb,qw,f,f,f,pb],[f,f,f,f,pw,f,f,f],[f,pw,hw,f,f,hw,f,f],[pw,f,pw,f,f,pw,pw,pw],[rw,f,bw,f,kw,bw,f,rw]]).

pos(0, w, 0,
[[rb,hb,bb,qb,kb,bb,hb,rb],
[pb,pb,pb,pb,pb,pb,pb,pb],
[f,f,f,f,f,f,f,f],
[f,f,f,f,f,f,f,f],
[f,f,f,f,f,f,f,f],
[f,f,f,f,f,f,f,f],
[pw,pw,pw,pw,pw,pw,pw,pw],
[rw,hw,bw,qw,kw,bw,hw,rw]]).

clean_field(I, J):-
( (I+J) mod 2 =:= 0->
draw_bitmap(50*I,50*J,G_squareW,_,_)
else
draw_bitmap(50*I,50*J,G_squareB,_,_)
).

draw_fig(Fig,I,J):-
N is 1+ (I+J) mod 2,
fig(Fig, N, Bitmap),
draw_bitmap(I*50,J*50,Bitmap,_,_).

fig(pb, 1, G_PawnB1).
fig(pw, 1, G_PawnW1).
fig(kb, 1, G_KingB1).
fig(kw, 1, G_KingW1).
fig(qb, 1, G_QueenB1).
fig(qw, 1, G_QueenW1).
fig(bb, 1, G_BishopB1).
fig(bw, 1, G_BishopW1).
fig(hb, 1, G_KnightB1).
fig(hw, 1, G_KnightW1).
fig(rb, 1, G_RookB1).
fig(rw, 1, G_RookW1).
fig(pb, 2, G_PawnB2).
fig(pw, 2, G_PawnW2).
fig(kb, 2, G_KingB2).
fig(kw, 2, G_KingW2).
fig(qb, 2, G_QueenB2).
fig(qw, 2, G_QueenW2).
fig(bb, 2, G_BishopB2).
fig(bw, 2, G_BishopW2).
fig(hb, 2, G_KnightB2).
fig(hw, 2, G_KnightW2).
fig(rb, 2, G_RookB2).
fig(rw, 2, G_RookW2).

R is xy(X, Y):- R:=string_from_ASCII(X+first_ASCII("A")- 1)+ (9-Y).

mem(E,[E,_,_,_,_,_,_,_],1).
mem(E,[_,E,_,_,_,_,_,_],2).
mem(E,[_,_,E,_,_,_,_,_],3).
mem(E,[_,_,_,E,_,_,_,_],4).
mem(E,[_,_,_,_,E,_,_,_],5).
mem(E,[_,_,_,_,_,E,_,_],6).
mem(E,[_,_,_,_,_,_,E,_],7).
mem(E,[_,_,_,_,_,_,_,E],8).

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

check(C1, C2, Pos):-
mem(Row,Pos,J),
mem([k|C1],Row,I),
can_move([Fig|C1],I,J,_,_,Pos,[Fig|C2]).

not_mate(C1, C2, Pos):-
mem(Row,Pos,J),
mem([Fig|C1],Row,I),
can_move([Fig|C1],I,J,X,Y,Pos,Fig2),
not(Fig2=[_|C1]),
move0(I,J,Pos,X,Y,Pos2),
not(check(C1, C2, Pos2)).

opposite(w, b).
opposite(b, w).

can_move([h|_], X1,Y1,X2,Y2,Pos,Fig):-
(X2 is X1+1; X2 is X1 - 1),
(Y2 is Y1+2; Y2 is Y1 - 2),
mem(Row,Pos,Y2),
mem(Fig,Row,X2).

can_move([h|_], X1,Y1,X2,Y2,Pos,Fig):-
(X2 is X1+2; X2 is X1 - 2),
(Y2 is Y1+1; Y2 is Y1 - 1),
mem(Row,Pos,Y2),
mem(Fig,Row,X2).

can_move([k|Color], X1,Y1,X2,Y2,Pos,Fig):-
(X2 is X1+1; X2 is X1 - 1; X2=X1),
(Y2 is Y1+1; Y2 is Y1 - 1;Y2=Y1),
not(X1=X2,Y1=Y2),
mem(Row,Pos,Y2),
mem(Fig,Row,X2),
opposite(Color, C2),
(Fig=[k| C2]; not(can_move([F|Color],X2,Y2,_,_,Pos,[F|C2]))).

can_move([k|Color], 5,Y,X2,Y,Pos,f):-
(Y = 1, Color=b, C2=w; Y= 8, Color=w, C2=b),
mem(Row,Pos,Y),
(X2 = 3, mem(f,Row,2), Xn=4, Xr=1; X2 = 7, Xn=6, Xr=8),
mem(f,Row,X2),
mem(f,Row,Xn),
mem([r|Color],Row,Xr),
not(can_move([Fig|Color],X2,Y,_,_,Pos,[Fig|C2])),
not(can_move([Fig|Color],Xn,Y,_,_,Pos,[Fig|C2])),
not(can_move([Fig|Color], 5,Y,_,_,Pos,[Fig|C2])).

can_move(pw, X,Y1,X,Y2,Pos,Fig):-
Yn is Y1 - 1,
mem(Row,Pos,Yn),
mem(f,Row,X),
(Y2=Yn, (Y1=2->Fig=nb else Fig=p)
;
Y1=7, mem(Row2,Pos,5), mem(f,Row2,X), Y2=5, Fig=d
).

can_move(pb, X,Y1,X,Y2,Pos,Fig):-
Yn is Y1 + 1,
mem(Row,Pos,Yn),
mem(f,Row,X),
(Y2=Yn, (Y1=7->Fig=nw else Fig=p)
;
Y1=2, mem(Row2,Pos,4), mem(f,Row2,X), Y2=4, Fig=d
).

can_move(pw, X1,Y1,X2,Y2,Pos,[F1|C]):-
Y2 is Y1 - 1,
mem(Row,Pos,Y2),
(X2 is X1+1;X2 is X1 - 1),
mem([F2|C],Row,X2),
(Y2=1, F2\=k->F1=t else F1=F2).

can_move(pb, X1,Y1,X2,Y2,Pos,[F1|C]):-
Y2 is Y1 + 1,
mem(Row,Pos,Y2),
(X2 is X1+1;X2 is X1 - 1),
mem([F2|C],Row,X2),
(Y2=8, F2\=k->F1=t else F1=F2).

can_move([r|_], X1,Y1,X2,Y2,Pos,Fig):-
move_up(X1,Y1,X2,Y2,Pos,Fig);
move_down(X1,Y1,X2,Y2,Pos,Fig);
move_left(X1,Y1,X2,Y2,Pos,Fig);
move_right(X1,Y1,X2,Y2,Pos,Fig).

can_move([b|_], X1,Y1,X2,Y2,Pos,Fig):-
move_left_up(X1,Y1,X2,Y2,Pos,Fig);
move_right_down(X1,Y1,X2,Y2,Pos,Fig);
move_left_down(X1,Y1,X2,Y2,Pos,Fig);
move_right_up(X1,Y1,X2,Y2,Pos,Fig).

can_move([q|_], X1,Y1,X2,Y2,Pos,Fig):-
move_up(X1,Y1,X2,Y2,Pos,Fig);
move_down(X1,Y1,X2,Y2,Pos,Fig);
move_left(X1,Y1,X2,Y2,Pos,Fig);
move_right(X1,Y1,X2,Y2,Pos,Fig);
move_left_up(X1,Y1,X2,Y2,Pos,Fig);
move_right_down(X1,Y1,X2,Y2,Pos,Fig);
move_left_down(X1,Y1,X2,Y2,Pos,Fig);
move_right_up(X1,Y1,X2,Y2,Pos,Fig).

move_up(X,Y1,X,Y2,Pos,Fig2):-
Y is Y1 - 1,
mem(Row,Pos,Y),
mem(Fig,Row,X),
(Fig=f ->
(Y2 =Y, Fig2=Fig; move_up(X,Y,X,Y2,Pos,Fig2))
else
Y2=Y, Fig2=Fig
).

move_down(X,Y1,X,Y2,Pos,Fig2):-
Y is Y1 + 1,
mem(Row,Pos,Y),
mem(Fig,Row,X),
(Fig=f ->
(Y2 =Y, Fig2=Fig; move_down(X,Y,X,Y2,Pos,Fig2))
else
Y2=Y, Fig2=Fig
).

move_left(X1,Y,X2,Y,Pos,Fig2):-
X is X1 - 1,
mem(Row,Pos,Y),
mem(Fig,Row,X),
(Fig=f ->
(X2=X, Fig2=Fig; move_left(X,Y,X2,Y,Pos,Fig2))
else
X2=X, Fig2=Fig
).

move_right(X1,Y,X2,Y,Pos,Fig2):-
X is X1 + 1,
mem(Row,Pos,Y),
mem(Fig,Row,X),
(Fig=f ->
(X2=X, Fig2=Fig; move_right(X,Y,X2,Y,Pos,Fig2))
else
X2=X, Fig2=Fig
).

move_left_up(X1,Y1,X2,Y2,Pos,Fig2):-
X is X1 - 1, Y is Y1 - 1,
mem(Row,Pos,Y),
mem(Fig,Row,X),
(Fig=f ->
(X2=X, Y2=Y, Fig2=Fig; move_left_up(X,Y,X2,Y2,Pos,Fig2))
else
X2=X, Y2=Y, Fig2=Fig
).

move_left_down(X1,Y1,X2,Y2,Pos,Fig2):-
X is X1 - 1, Y is Y1 + 1,
mem(Row,Pos,Y),
mem(Fig,Row,X),
(Fig=f ->
(X2=X, Y2=Y, Fig2=Fig; move_left_down(X,Y,X2,Y2,Pos,Fig2))
else
X2=X, Y2=Y, Fig2=Fig
).

move_right_up(X1,Y1,X2,Y2,Pos,Fig2):-
X is X1 + 1, Y is Y1 - 1,
mem(Row,Pos,Y),
mem(Fig,Row,X),
(Fig=f ->
(X2=X, Y2=Y, Fig2=Fig; move_right_up(X,Y,X2,Y2,Pos,Fig2))
else
X2=X, Y2=Y, Fig2=Fig
).

move_right_down(X1,Y1,X2,Y2,Pos,Fig2):-
X is X1 + 1, Y is Y1 + 1,
mem(Row,Pos,Y),
mem(Fig,Row,X),
(Fig=f ->
(X2=X, Y2=Y, Fig2=Fig; move_right_down(X,Y,X2,Y2,Pos,Fig2))
else
X2=X, Y2=Y, Fig2=Fig
).


File games catur ini akan berformat .spj karena memang itulah format yang dihasilkan pada bahasa Prolog...



....SELAMAT MENCOBA....

Kamis, 04 Maret 2010

Perkembangan Games Online di Indonesia [Part 5]

Finally....

Artikel ini bakalan berakhir deh...

DOMO Online

Game yang diedarkan oleh PT. Datakom Wijaya Pratama merupakan game RPG 3D dengan gambar kartun anime. Gamenya sendiri cukup fleksibel dengan banyak quest dan kemampuan untuk mengambil semua job yang ada hanya dengan satu karakter. Hadir pada bulan Juni 2007, DOMO sempat menarik perhatian para gamer untuk mencoba memainkan game ini. Fasilitas chatting di game ini tidak kalah dengan program messenger, bahkan dilengkapi dengan mini game. Dalam quest-quest penting kamu juga diharapkan bekerja sama dengan gamer lainnya.



Di dunia DOMO kita diperkenalkan dengan tiga sistem hubungan yaitu Master dan Apprentice (antara guru dan murid), True Lover (antara laki-laki dan perempuan) dan Friendship (antara sesama pemain yang menjalin hubungan persaudaraan). Mitos kebudayaan Kuno mengatakan bahwa dengan persatuan kita bisa memiliki kekuatan besar. Demikian pula yang berlaku di DOMO, jika gamer mampu menjaga hubungan kekeluargaan ataupun percintaan pada level dan kondisi tertentu, gamer dapat mengeluarkan bermacam-macam jurus gabungan. Sistem ini disebut Joint Attack System.Keistimewaan game DOMO yang unik adalah Flying System. Fitur ini pertama kali yang ada di Indonesia, karakter memiliki kemampuan terbang kesana kemari dengan menaiki senjata utama. Fitur lainnya, karakter kamu bisa memancing, menebang, menambang, bertani, berternak, bisa memelihara pet, men-summon pet, dan masih banyak lagi. Game ini tampaknya cukup bisa bertahan walau semakin banyak game-game baru bermunculan.


Angel Love Online

Angel Love Online (ALO) adalah game 2.5D yang hampir mirip dengan game Ragnarok Online. Game yang dirilis pada bulan Juli 2007 ini tampaknya lebih ditujukan untuk memikat banyak penggemar RPG khususnya dari kalangan wanita mengingat gambarnya yang imut dan karakter yang lucu-lucu. Para penggemar RPG ringan dengan komunitas chatting yang segar juga menjadi target dari game ini.



Salah satu fitur menarik dalam sistem chatting game ini adalah di mana kamu bisa memasang foto pribadi kamu seperti layaknya dalam sebuah chat messenger. Sistem battle yang ditawarkan juga tidak terlalu rumit, dan cukup bisa dinikmati berbagai macam kalangan. Karakter game ini juga bisa memilih skill dari job lain, namun akan membuat karakter menjadi lemah. Game quest-nya terlihat sangat monoton, tapi ide-ide event dari game master-nya cukup kreatif..Spek komputer untuk bermain game ini cukup rendah, yaitu gamer Cuma butuh komputer dengan prosessor Pentium 3 dengan kecepatan 800 Mhz dan VGA dengan memori 32 MB, serta memori komputer 256 MB. WaveGame selaku publisher game ini tampaknya terus meng-update game ALO dengan patch-patch terbaru hingga saat ini. Sistem gratis selamanya dengan menggunakan ‘item mall’ juga digunakan pada game ini, dan tampaknya telah menjadi keharusan untuk game online di masa sekarang ini.


Rising Force (RF) Online

Game 3D MMORPG keluaran PT. Lyto ini, merupakan game yang paling populer saat ini. Dengan tema ‘pertempuran tanpa akhir’, keunggulan RF adalah karena keunikan-keunikannya seperti sistem job, skill, dan war. Khusus di Indonesia, RF langsung beredar dengan patch versi 2, sama seperti negara Korea. Negara lain pada umumnya masih memakai patch versi 1. Grafik game ini terlihat paling bagus bila dibandingkan dengan semua game online yang pernah beredar di Indonesia. Oleh karena itu diperlukan komputer dengan spek yang lumayan untuk bisa memainkan komputer ini dengan lancar. Dirilis pada bulan Juli 2007, RF langsung menjadi primadona bagi para gamer di Indonesia. Hal ini terlihat dengan penuhnya server-server RF walau dimainkan pada tengah malam dan pagi subuh.




RF Online memiliki sistem Chip war yang merupakan pertempuran antar 3 bangsa (Accretia Empire, Bellato Union, Holy Alliance Cora) yang dapat dilakukan 3 kali sehari setiap 8 jam. Pertempuran antara 3 bangsa merupakan suasana baru, yang tidak bisa dilakukan hanya dengan mengandalkan kekuatan saja namun dibutuhkan kekompakan seluruh anggota bangsa dibawah seorang pimpinan bangsa. Game ini juga menyediakan fitur Macro yang dapat menjalankan beberapa perintah otomatis pada karakter. Ada 2 Jenis macro yang dapat digunakan yaitu Macro Potion dan Macro Skill.Game buatan Korea ini diyakini telah menjadi game online yang paling banyak dimainkan gamer saat ini. Hal ini mungkin akan terus bertahan karena RF memakai sistem ‘free to play’ dengan penjualan ‘item mall’. Promosi gencar dan terus menerus dari PT. Lyto juga yang telah membuat game ini dikenal luas oleh kalangan gamer.


Ghost Online (GO)

Ghost Online (GO) atau dikenal di luar negeri sebagai Ghost Soul merupakan Game MMORPG 2D Side-Scrolling yang sangat mirip dengan Maple Story (Game MMORPG 2D Side-Scrolling pertama di dunia yang dibuat oleh Nexon, yang juga membuat game Nexia). Game ini sendiri telah dirilis di Korea, Jepang, China, Taiwan, Malaysia dan sekarang di Indonesia. Mulai bisa dimainkan sejak bulan Oktober 2007, game dengan nuansa oriental ini ternyata cukup diminati oleh gamer dengan terlihat ramainya pemain di dalam gamenya.



Game yang dirilis oleh PT. Kreon mempunyai karakter tidak hanya bisa memukul dan meng-cast magic tapi juga meloncat, menghindar, dan berlari. Bagi yang menyukai game simple yang lebih cenderung menggunakan keyboard, game ini sangat cocok dan ‘fun’ untuk dimainkan. Terdapat 3 buah karakter utama yaitu Warrior, Assassin dan Mage. Masing-masing karakter mempunyai keunggulan dan keunikan pada skill mereka.GO seharusnya bisa bertahan menghadapi game online yang telah banyak masuk ke Indonesia, karena mengusung tema dan pola permainan yang berbeda dengan game lainnya.


Game-game yang beredar di Tahun 2008

Pada akhir tahun 2007 dan memasuki awal tahun 2008, ada beberapa publisher yang telah mengumumkan dah bahkan me-launching game online terbaru di Indonesia. PT. Serenity mengusung game Rose Online Evolution, PT. Playon men-launching Master of Fantasy, dan PT. Lyto telah mendapatkan lisensi Perfect World dan Idol Street. Perusahaan baru AppleTree telah merilis Eudemons Online juga.Peperangan babak baru game online di Indonesia terlihat semakin sengit dari tahun ke tahun. Yang tidak kuat bertahan dan tidak inovatif, otomatis akan tersingkir dari persaingan bisnis industri game yang semakin ketat saat ini. Game-game yang masuk ke Indonesia harusnya lebih diseleksi dan disesuaikan dengan keinginan gamer dan kondisi yang ada. Oleh karena itu pihak publisher game seharusnya mengadakan survei yang lebih detil tentang segala aspek gaming, sebelum benar-benar memasukkan game baru. Hal ini dimaksudkan supaya jangan sampai ada publisher game yang tutup lagi karena kendala atau kondisi yang tidak diinginkan.





HUffftttt.... Akhirnya selesai juga..
Semoga bermanfaat iah... (n_n)V

Sabtu, 27 Februari 2010

Perkembangan Games Online di Indonesia [Part 4]

Postingan dobel gara2 kemarin keasyikan liburan..hehehehe

Selamat Menikmati...


Vital Sign

Vital Sign merupakan game online 3D First Person Shooting (FPS) pertama di Indonesia. Mirip dengan pola permainan game Quake, Doom dan Counter-Strike, diharapkan game ini bisa mengulang sukses game Counter-Strike di Indonesia. Hadir pada bulan September 2005, game ini mulanya cukup gencar dipromosikan oleh publishernya.




Vital Sign membutuhkan komputer dengan spek yang sangat tinggi dan koneksi internet yang stabil plus kencang, Sayangnya kondisi internet Indonesia saat itu kurang memadai untuk bisa memainkan game ini secara lancar, sehingga banyak gamer yang mengalami ngelag sehingga akhirnya game ini tidak begitu diminati. Game ini sempat bertahan lebih dari 1 tahun, walau akhirnya harus menutup layanannya.


SEAL Online

SEAL Online dirilis di Indonesia pada bulan Februari 2006 oleh PT. Lyto, yang merupakan game fantasy RPG 3D dengan grafik imut dan jalan cerita yang menarik. Setiap pemain dalam game akan ditampilkan dalam bentuk karakter 3D imut dan lucu, yang dapat memberikan perasaan nyaman untuk semua kalangan, sehingga memudahkan para gamer untuk saling berkenalan. SEAL memiliki fitur-fitur menarik seperti karakter gamer bisa memancing, berpacaran, memelihara pet, chatting lewat messenger (chat) dan berburu (hunting) bersama.




Game ini sempat booming di Indonesia, apalagi PT. Lyto menghadirkan Marshanda sebagai ikon game, dan ikut bermain game ini juga. Game ini sempat ditinggalkan pemainnya ketika diterapkan sistem ‘pay to play’ yang waktu itu sudah tidak tren lagi di Indonesia karena banyaknya game gratis yang beredar. Akhirnya PT. Lyto menerapkan sistem ‘free to play’ dengan ‘item mall’, yang kemudian kembali menarik minat gamer untuk kembali memainkan game ini.Hingga saat ini SEAL cukup sering mengadakan event di dalam game maupun di luar game, dan tetap bertahan seiring dengan mulai banyaknya game-game online baru yang bermunculan.


RAN Online

Game MMORPG 3D Korea yang satu ini cukup unik, dengan latar belakang cerita ‘tawuran’ dan perseteruan antar sekolah model Jepang. Namun dunianya juga diserang oleh monster, zombie dan sejenisnya. Masing-masing sekolah terbagi menjadi 4 sektor dan juga terdapat 4 tipe karakter yang bisa dimainkan, antara lain Combat (tangan kosong atau fighter), Sword (memakai senjata), Archery (pemanah) dan Qigong (tenaga dalam atau magic).



Dirilis pada bulan April 2006 di Indonesia, RAN sangat diminati dan cocok dengan selera gamer Indonesia. Hal ini terlihat dengan ramainya gamer yang ikut bermain game ini hanya dalam waktu singkat. Salah satu kelebihan game ini adalah pemakaian spek komputer untuk memainkan game ini tidak terlalu tinggi. RAN bisa dimainkan cukup dengan komputer pentium 3 kecepatan 500 Mhz plus kartu grafis 32 MB, dan cukup memori 256 MB.Game keluaran PT. Jaspace ini memakai sistem ‘item mall’ dan gratis bermain selamanya. Hingga kini game ini masih sangat diminati oleh gamer setianya, dan patch update-nya telah memasuki episode 2.3.


Deco Online

Deco muncul di Indonesia pada bulan Juli 2006 lewat publisher PT. Playon. Game 3D memiliki grafik kartun namun tidak berkesan imut seperti Ragnarok atau SEAL. Deco Online memiliki banyak fitur yang unik dan bervariasi, seperti Multiple Combo, Side Job, Instant Dungeon, PvP Battle, Messenger, dan masih banyak lagi. Uniknya game ini, gamer dapat menyelesaikan quest berulang-ulang, sehingga dapat melakukan leveling dengan mudah.



Terbagi menjadi dua dunia yaitu Millena dan Rain, masing-masing dunia memiliki beberapa karakter. Millena memiliki karakter yang menggunakan pedang (1 tangan dan 2 tangan) dan busur, sedangkan Rain memiliki karakter yang mengandalkan sihir (magic).Dengan sistem ‘item mall’ dan ‘free to play’, tadinya game ini diharapkan bisa menarik banyak gamer untuk ikut memainkannya. Sayangnya permainannya agak monoton, terutama karena mudahnya mendapatkan item dan tidak adanya item rare, jadi perdagangan dalam game ini mati. Pada akhirnya Deco memang memiliki rare-rare item dan menurunkan drop rate namun tetap tidak terasa signifikan. Deco masih bertahan hingga saat ini dan PT. Playon masih terus mengadakan patch dan update terbaru.


AyoDance

AyoDance (Audition) adalah game musikal yang sangat sukses di Indonesia. Game Korea yang dirilis oleh PT. Megaxus Infotech pada bulan Desember 2006, dan memasuki masa komersial pada awal tahun 2007. AyoDance sangat simple untuk dimainkan dan dengan lagu-lagu yang enak didengar. Karena sifat permainannya, banyak cewek yang bergabung memainkan game ini. Dari info yang beredar mungkin jumlah gamer cewek AyoDance melebihi gamer cowoknya. Bukan rahasia kalau game ini populer dan ramai sebagai ajang untuk kenalan dan menemukan pacar.



Game ini juga mengusung sistem ‘free to play’ dengan ‘item mall’. Di dalam game, gamer akan berperan sebagai seorang dancer. Ada beberapa mode permainan dapat dipilih sesuai yang diinginkan dan lagu dapat juga diganti sesuai dengan keinginan gamer. Mode permainan antara lain Freestyle Mode, Chance Mode, B-Boy Mode (Battle), Couple Mode, Big Game Mode dan Dance Competition.Di China game Audition ini memiliki lebih dari 100 juta pemain. Di negara lain terutama Asia, game ini juga cukup sukses dan digermari terutama oleh gamer kawula muda. AyoDance bisa dikatakan game tersukses kedua setelah Ragnarok di Indonesia dengan melihat hampir setiap warnet pasti ada yang memainkan game ini.



Perjuangan kita belum berakhir.. GANBATTE (n_n)V

Sabar tunggu postingan berikutnya iah...

Perkembangan Games Online di Indonesia [Part 3]

Holllaaaaaaaa......

Duh, udah 2 hari nih gak ngepost di blog.Padahal masih banyak ni perkembangan Games online yang belum saya jabarkan.. Sabar iah,, untuk mengganti artikel yang tidak di post selama 2 hari kemarin. Maka hari ini saya akan mengepost 2x alias 2 artikel..


StarGate Online (SGO)

Game Online RPG 2D dengan gambar-gambar imut yang memiliki mayoritas pemain berumur 17 tahun kebawah, muncul pada tahun 2005. Game keluaran PT. Borneo X ini memiliki keunikan dimana masing-masing karakter bisa mengendarai semacam robot, dan salah satu karakternya juga adalah sebuah robot. Game online buatan Jepang ini sempat menjadi gratis kembali dengan sistem ‘item mall’ setelah ditinggalkan pemainnya karena memakai sistem ‘Pay to Play’.Game ini sebenarnya cukup menyenangkan, sayangnya memiliki kekurangan di pola manajemen dari pihak publisher, hingga akhirnyamenjadi salah satu game publisher di Indonesia yang menutup usahanya pada tahun 2006.





TS Online

Game Online RPG 2D keluaran tahun bulan Juli 2005 ini, memiliki gaya oriental dengan mengambil setting jaman ‘Sam Kok’ atau yang dikenal dengan tiga kerajaan (Three Kingdom). Gaya permainan di dalam gamenya cukup unik, dimana pemain dapat menangkap monster untuk dijadikan sebagai peliharaan (pet). Di dalam game-nya sendiri terdapat beberapa mini game seperti permainan dadu, sehingga pemain tidak akan cepat bosan.





TS Online juga merupakan game online yang pertama kali memperbolehkan membuka dua client atau karakter bersamaan dalam satu komputer. Sayangnya game ini hanya bertahan hingga 18 Februari 2008, dan sudah ditutup aksesnya oleh pemegang lisensinya, PT. Global World Technology.


Pangya

Satu lagi game action dari BolehGame, yang memperkenalkan pola bermain golf 3D, dengan karakter imut dan menggemaskan. Akurasi dan perhitungan jitu dibutuhkan untuk menjadi ahli di dalam game ini. Banyak gamer tergila-gila dengan permainan yang satu ini, hingga menjadikannya sebagai game wajib yang harus di mainkan setiap hari. Bisa dikatakan bahwa Pangya merupakan game tersukses BolehGame setelah Nexia.



Sistem permainan Pangya sendiri mirip pada umumnya dengan olahraga golf. Bedanya adalah Pangya memiliki banyak pola pukuran yang aneh-aneh dan lapangan golf yang sangat unik, bahkan pemain bisa bermain golf di padang salju. Dengan sistem ‘item mall’, Pangya tampaknya akan bisa bertahan lama dengan pola bermain gratis selamanya.Pangya telah menutup layanannya di Indonesia pada bulan April 2008, dan masih dengan update season 2. Di negara aslinya, Korea, Pangya sudah memasuki update season 3, dimana belum jelas kapan akan di-update juga di Indonesia. Game ini masih banyak diminati oleh para gamer yang memang menyukai pola permainan yang berbeda dibanding game online lainnya.


O2Jam

O2Jam adalah permainan game online berdasarkan musik yang dapat dimainkan 8 player didalam 1 room secara bersamaan. Didalam game ini, gamer dapat menggunakan alat-alat musik yang lucu-lucu. Bukan hanya alat musik saja, gamer juga dapat memakai baju-baju atau avatar yang lucu-lucu juga.Mengikuti kesuksesan game arcade seperti Dance Dance Revolution dan Para para, game ini memperkenalkan user PC pada game musikal berbasis ketukan. Untuk memahami O2Jam, kamu cukup mengikuti melodi lagu dan menekan tombol dengan cekatan. O2Jam dirilis pertama kali oleh PT. Infomedia Nusantara pada tahun 2005, dan langsung banyak diminati oleh para gamer, terutama gamer cewek. Lagu dan alunan musik di O2Jam sering sekali terdengar di warnet dan game center pada saat itu.Ketika game ini sempat dibuat ‘pay to play’, penggemar game ini sebagian besar langsung kabur, hingga akhirnya diubah menjadi sistem ‘item mall’ atau ‘free to play’. O2Jam masih bertahan hingga saat ini, dan sejak tahun 2006 sudah berubah menjadi O2Jam NX (New Experience).




Knight Online

Walau dengan grafik 3D yang masih terlihat kaku dan kurang dipoles, game ini sebenarnya cukup menarik. Muncul pertama kali sekitar pertengahan tahun 2005, game ini hanya diketahui sedikit gamer. Game ini terlihat sepi peminat dan terlihat kurang ramai ketika game ini dimainkan pada saat close beta dan open beta.



Sebenarnya pola permainan game ini hampir sama dengan RYL episode 1, dimana ditekankan adalah pertempuran (PVP) antar gamer yang bisa memilih bangsa El Morad atau Karus. Masing-masing bangsa terdiri dari 4 ras yaitu Mage, Priest Warrior dan Rogue. Terdapat sistem battle juga di game ini yang dilaksanakan setiap dua minggu dan untuk memperebutkan kastil (castle siege).Promosi yang kurang oleh publishernya PT. Infomedia Nusantara, membuat game ini tidak begitu populer walaupun memakai sistem ‘item mall’ dan gratis selamanya. Game ini hanya bertahan kurang dari 2 tahun, yang akhirnya ditutup pada tahun 2007.



Lanjut lagi euy... :)