Kamis, 12 Mei 2016

0

analisa 5 game serta algoritma yang dipakai

  • Kamis, 12 Mei 2016
  • mbohtampan@blogspot.com
  • Share
  • 1.Game Tetris

    Tetris adalah permainan teka-teki yang disusun dan diprogram oleh sepasang programmer berkebangsaan Rusia.Dalam permainan tetris, balok-balok tetris berjatuhan ke area permainan dalam waktu konstan.Balok tetris selalu terdiri dari 4 balok kecil yang membentuk 7 macam rupa.
    Pemain dapat mengontrol balok tetris yang jatuh melalui 4 tombol arah panah untuk menggeser ke kanan atau ke kiri dan tombol arah panah ke bawah untuk mempercepat jatuhnya balok tetris. Satu kendali yang lain adalah untuk memutar bentuk balok tetris 90º’

    Algoritma yang dipakai
    Algoritma yang gunakan untuk mencari solusi dari permainan tetris adalah algoritma yang menggunakan konsep-konsep yang ada dalam algoritma Greedy dan Algoritma BruteForce.Algoritma Greedy merupakan metode yang paling umum digunakan untuk memecahkan masalah optimasi.Algoritma ini sederhana dan sesuai dengan tujuan yang ada.
    Algoritma Greedy memecahkan masalah langkah per langkah, pada setiap langkah:
    1. mengambil pilihan yang terbaik yang dapat diperoleh pada saat itu tanpa memperhatikan konsekuensi ke depan (prinsip “take what you can get now!”)
    2. berharap bahwa dengan memilih optimum local pada setiap langkah akan berakhir dengan optimum global Brute force adalah sebuah pendekatan yang sesuai (straightforward) untuk memecahkan suatu masalah, biasanya didasarkan pada pernyataan masalah (problem statement) dan definisi konsep yang dilibatkan.
                                      
                Algoritma brute force memecahkan masalah dengan sangat sederhana, langsung dan dengan cara yang jelas (obvious way). Algoritma yang digunakan untuk mendapatkan susunan tumpukan balok yang paling baik dengan menempatkan balok ke tempat yang tepat.Algoritma ini menggunakan prinsip Greedy dalam mencari langkah sollusi yang paling menguntungkan. Prioritas keuntungan yang tersusun terdiri dari:
    1. Membentuk satu atau lebih baris paling penuh
    2. Membentuk satu atau lebih baris paling mendekati penuh
    3. Tidak membentuk ruang kosong pada susunan tumpukan balok
    4. Balok dapat masuk ke dalam susunan tumpukan balok paling dalam Algoritma yang kami kemukakan akan mencari penempatan balok yang jatuh ke ruang yang paling tepat sesuai prioritas keuntungan di atas diantara susunan tumpukan  balok. Pencarian ini akan dilakukan secara Brute Force. Balok yang jatuh akan dicoba untuk ditempatkan ke ruang di antara susunan tumpukan balok dibawah.

    Algoritma ini akan mencari penempatan yang sesuai dengan prioritas di atas. Pencarian solusi diantara susunan tumpukan balok akan dilakukan secara Brute Force. Algoritma ini akan mencari solusi paling menguntungkan untuk setiap sisi balok yang sedang jatuh. Pencarian solusi untuk setiap sisi dilakukan secar Brute Force. Apabila pada skala prioritas tertinggi memiliki lebih dari satu solusi terbaik yang sama, maka diantara solusi tersebut akan dibandingkan satu sama lain untuk mencari yang paling menguntungkan dengan standard prioritas selanjutnya, dan begitu selanjutnya. Apabila pada skala prioritas tertinggi tidak memiliki solusi, maka akan mencari solusi paling menguntungkan dengan skala prioritas selnjutnya, dan begitu selanjutnya. Apabila pada skala prioritas tertinggi hanya memiliki satu solusi paling  menguntungkan, maka akan dibandingkan dengan solusi dari hasil pencarian solusi untuk sisi balok yang lain. Diantara setiap solusi sisi balok, dicari solusi yang paling menguntungkan sesuai skala prioritas di atas. Dan balok akan ditempatkan pada ruang tersebut.

    Apabila ada kasus seperti diatas, maka algoritma tersebut akan mencari solusi yang paling menguntungkan untuk menempatkan balok tersebut ke ruang di antara susunan tumpukan balok. Pencarian dicari secara brute force dari kiri ke kanan untuk sisi yang pertama kali keluar.Dapat dilihat seperti gambar berikut, bahwa lgoritma seakan-akan menempatkan balok tersebut dari kiri ke kanan untuk balok dengan sisi tersebut.


    http://chachados.blogspot.co.id/2012/04/algoritma-pada-game-tetris.html


    2.liverpool racing

    game liverpoolracing yang merupakan pengembangan dari game Horrible Racing pada Strawberry Prolog yang sudah di edit sedemikian rupa dengan menambahkan gambar background, backsound dan tampilan yang lebih menarik bersangkutan dengan balapan. Saya menggunakan kata liverpool karena saya sendiri merupakan fans sejatinya the red alias liverpool .Dalam game Horrible Racing user memiliki tujuan menghindari kotak-kotak yang turun dari atas secara random sampai batas nyawa yang sudah ditentukan dan ada score akhir. Namun pada game liverpoolracing  ini memiliki perbedaan dimana didalam permainan ada lawan atau komputer yang akan menggangu kita dalam melewati rintangan. Kemudian perbedaan selanjutnya penambahan jumlah kotak yang turun dari atas menjadi 7 kolom dari sebelumnya yang hanya 4 kolom. Tentunya membuat rintangan menjadi semakin sulit ditambah lagi dengan kecepatan dari setiap kotak yang turun lebih cepat dari game sebelumnya.

    Dalam permainan ini  AI menggunakan algoritma Branch and Bound, algoritma ini mendukung perhitungan untuk memukan jalan terbaik menghindari trap dan posisi terbaik untuk menjebak Player.  Hal ini tidak didapat dari algoritma lain seperti DFS dan brute force.Serta menggunakan algoritma minimax untuk mencari nilai maksimum.Ketika nilai maksimum ditemukan maka program akan berhenti.
    Ada beberapa peraturan didalam permainan ini, antara lain:
    ·         Player harus menghindari kotak yang jatuh dari atas selama mungkin dengan menekan button arah kanan atau kiri untuk menghindar.
    ·         Computer telah dirancang untuk menghindari kotak yang jatuh juga.
    ·         Kecepatan kotak yang turun akan bertambah semakin cepat sehingga permain akan menjadi semakin mengasikan dan menegangkan.
    ·         Player dan Computer diberikan nyawa sama rata 10.
    ·         Player dan Computer bersebelahan dan tidak dapat saling menyebrang dalam artian bertabrakan, sehingga baik Player atau Computer harus bisa menggangu lawannya hingga nyawanya habis dan permainan berakhir.

    GOAL
    Goal atau kemenangan dari permainan ini adalah siapa yang berhasil bertahan selama mungkin antara Player dan Computer untuk tidak terkena kotak yang jatuh dari atas dialah pemenangnya.
    Tampilan jika menang:

                Tampilan jika kalah:


    3.pencuri telur

                Permainan Pencuri Telur ini saya kembangkan dari game Mathes. Game ini juga merupakan game dengan menerapkan konsep Artificial Intelligence(AI) atau kecerdasan buatan.
                Permainan ini di lakukan oleh player yang melawan AI dalam hal startegi pengambilan telur. Di dalam permainan ini pemain maupun computer akan berusaha mengambil telur dan berusaha untuk menyisakan satu telur, karena yang mengambil telurterakhir dialah yang kalah.
    Mengandung Icon Telur dan 5 opsi menu:
    , merupakan icon yang akan di klik oleh user ataupun computer.
    Terdapat 4 opsi game yang dapat dipilih ,yaitu:
    1.      Ulang, opsi ini digunakan untuk memulai atau mengulang permainan.
    2.      Mode berfungsi untuk merubah menjadi computer yang mengambil telur terlebih dahulu serta merubah aturan permainan
    3.      Tentang, opsi ini berfungsi untuk menampilkan tentang data pengembang dari game ini.
    4.      Cara Bermain, opsi ini digunakan untuk menampilkan cara bermain dan peraturan didalam game ini.
    5.      Keluar , opsi ini digunakan untuk keluar dari permainan.
    RULES
    Berikut adalah aturan bermain di dalam game ini.
    Ø  Tunggu sampai Sound berakhir dan klik Ok untuk memulai.
    Ø  Pemain diberikan kesempatan untuk mengambil telur pertama.
    Ø  Pemain bisa menjadi giliran kedua jika di atur pada menu mode.
    Ø  Pemain diberikan keleluasaan untuk mengambil berapapun telur yang ada asalkan masih pada kolom yang sama.
    Ø  Dilarang mengklik diluar icon Telur karena terkadang terjadi Bug. Jika terjadi bug anda bisa menggunakan menu Ulang untuk mengulang permainan.
    Ø  Komputer telah dirancang untuk menyisakan satu telur terakhir. Karena yang mengambil telur terakhir adalah yang kalah.
    Ø  Dan pada menu mode terdapat perubahan system game yang merubah aturan menjadi pengambil telur terakhir dialah pemenangnya.
    GOALS
                      Setiap permainan pastinya mempunyai goals atau tujuan akhir. Didalam permainan ini goals atau tujuan akhirnya adalah membiarkan musuh mengklik telur terakhir dengan strategi menghitung jumlah telur agar tersisa satu telur.
    Berikut adalah kondisi dimana player mencapai goals atau tujuan akhir.

    Pada game Pencuri Telur ini menggunakan algoritma Runut-Balik atau Backtracking. Algoritma backtracking ini adalah algoritma berbasis DFS untuk mencari solusinya. Algoritma Backtraking ini tergolong hemat waktu tidak seperti algoritma Bruteforce yang mencari semua kemungkinan solusi, Backtraking hanya menampilkan pencarian yang mengarah ke solusi saja.
    Otak yang diberikan kepada computer adalah dia akan selalu berusaha untuk menyisakan satu telur untuk Player. Dengan algoritma ini pastinya perhitungan ini akan cepat untuk diproses.

    ALGORITMA YANG DIPAKAI
                Di dalam Game Pencuri Telur algoritma yang dipakai adakah sebagai berikut:
    1.      Ketika player mengklik icon telur.
    2.      Ketika computer mengklik telur pula, dengan syarat menyisakan satu telur terakhir untuk player.
    3.      Ketika game berakhir apabila player ataupun computer menang.
    Dalam permainan Pencuri Telur ini menggunakan algoritma Runut-Balik atau Backtraking karena dengan menggunakan algoritma ini si computer akan cepat untuk berfikirnya. Dia langsung mengklik tanpa memakan banyak waktu. Kalau game ini memakai algoritma  Minimax maka game akan berlangsung sangat lama seperti permainan catur, dimana algoritmanya mencari semua kemungkinan yang ada.

    4. pacman

    Pacman adalah sebuah permainan video arkade yang cukup terkenal. Cara bermainnya mudah yaitu pemain (pacman) diharuskan memakan makanan (berbentuk titik-titik kecil) dan sebuah bulatan besar (energizer) sampai habis di dalam sebuah labirin yang berliku-liku. Tidak hanya menghabiskan makanan tersebut, pemain juga harus menghindari 4 ‘hantu’ yang berkeliaran secara random untuk menangkap pemain. Jika pemain bertemu dengan hantu-hantu tersebut maka pemain dinyatakan gagal dan harus mengulangi dari awal lagi. Tetapi pemain bisa mengalahkan hantu tersebut dengan memakan energizer yang terdapat di pojokkan labirin. Jika pemain memakan titik besar tersebut, maka para hantu akan ketakutan dan berusaha menjauh dari pemain. Dalam hal ini pemain bisa memakan hantu tersebut dan mendapatkan bonus yang besar, tetapi para hantu yang termakan tidak mati begitu saja, mereka kembali ke posisi semula dan kembali mengejar pemain. Pemain dinyatakan menang jika semua makanan habis tak tersisa dan pemain akan memasuki level berikutnyaPergerakan para hantu ini dipengaruhi oleh kecerdasan buatan atau Artificial intelligence (AI), dimana para hantu diberi kecerdasan untuk menentukan langkah dan mengambil keputusan akan bergerak kemana dengan menentukan rute yang paling pendek (minimum),
    Tujuan game
    tujuannya adalah menangkap pemain. Setiap hantu harus memiliki pemikiran berbeda dan memiliki kemampuan bekerja sama untuk mengejar pemain, sehingga permainan akan tampak lebih menarik. Persoalan mendekati karakter Pacman ini dapat diselesaikan dengan berbagai macam cara, salah satunya dengan menggunakan algoritma greedy
    algoritma greedy
    Algoritma Greedy membentuk solusi langkah per langkah (step by step). Terdapat banyak pilihan yang perlu di eksplorasi pada setiap langkah solusi, karenanya pada setiap langkah harus dibuat keputusann yang terbaik dalam menentukan pilihan.Keputusan yang telah
    diambil pada suatu langkah tidak dapat diubah lagi pada langkah selanjutnya. Sebagai contoh, jika kita manggunakan algoritma Greedy untuk menempatkan komponen diatas papan sirkuit, sekali komponen telah diletakkan dan dipasang maka tidak dapat dipindahkan lagi.
    Pada setiap langkah diperoleh optimum lokal. Bila algoritma berakhir, kita berharap optimum lokal menjadi optimum global.
    Algoritma Greedy adalah salah satu algoritma yang dapat digunakan untuk mendapatkan solusi terbaik dan merupakan algoritma yang paling populer dalam hal ini.
    Secara Harfiah Greedy artinya rakus atau tamak, sifat yang berkonotasi negatif. Orang yang memiliki sifat ini akan mengambil sebanayak mungkin atau mengambil yang paling bagus atau yang paling mahal. Sesuai dengan arti tersebut, Prinsip Greedy adalah take what you can get now. Dalam kehidupan sehari hari Greedy dapat digunakan dalam masalah seperti :
    Memilih beberapa jenis investasi
    Mencari jalur tersingkat ini merupakan implementasi untuk game pacman



    5.tictactoe

    Permainan Tic-Tac-Toe
    Permainan tic-tac-toe merupakan permainan berjenis board-game berukuran 3x3. Pemain harus mengisi sel-sel, sehingga karakter yang dimasukkan pemain tersebut dapat membentuk suatu garis lurus horizontal, vertikal, ataupun juga diagonal. Permainan ini biasanya dimainkan oleh 2 orang pemain, tapi pada versi permainan komputer, pemain lawan dapat digantikan oleh komputer. Hasil permainan berupa menang, kalah, ataupun seri.

    Algoritma Minimax
    Algoritma minimax merupakan basis dari semua permainan berbasis AI. Pada algoritma minimax, pengecekan akan seluruh kemungkinan yang ada sampai akhir permainan dilakukan. Pengecekan tersebut akan menghasilkan pohon permainan yang berisi semua kemungkinan tersebut. Tentunya dibutuhkan resource yang berskala besar untuk menangani komputasi pencarian pohon solusi tersebut berhubung kombinasi kemungkinan untuk sebuah permainan catur pada setiap geraknya sangat banyak sekali.
    Algoritma minimax ini bekerja secara rekursif dengan mencari langkah yang akan membuat lawan mengalami kerugian minimum. Pada langkah pertama komputer akan menganalisis seluruh pohon permainan. Dan untuk setiap langkahnya, komputer akan memilih langkah yang paling membuat lawan mendapatkan keuntungan minimum, dan yang paling membuat komputer itu sendiri mendapatkan keuntungan maksimum.
    Dalam penentuan keputusan pada algorima minimax digunakan sebuah fungsi heurisitic untuk mengevaluasi nilai sebagainilai yang merepresentasikan hasil permainan yang akan terjadi jika langkah tersebut dipilih. Pada permainan tic-tac-toe  ini digunakan nilai 1,0,-1 untuk mewakilkan hasil akhir permainan berupa menang, seri, dan kalah. Dari nilai-nilai heuristic inilah komputer akan menentukan simpul mana dari pohon permainan yang akan dipilih, tentunya simpul yang akan dipilih tersebut adalah simpul dengan nilai heuristicyang akan menuntun permainan ke hasil akhir yang menguntungkan bagi komputer.
    Garis besar algoritma minimax secara umum
    "If ada langkah kemenangan Then pilih langkah tersebut.
    Else Ifl awan mempunyai 2 spot terisi dalam satu garis dengan spot ketiga masih kosong Then tutup langkah tersebut (isi spot kosong ketiga tersebut).
    Else melangkah ke state yang mempunyai kemungkinan menang tertinggi (berdasarkan nilai heuristic yang dibangkitkan)"

    Algoritma umum diatas untuk permainan tic-tac-toe
    "Mencari langkah dengan nilai maksimum
    If langkah tersebut merupakan langkah kemenangan Then pilih lagkah tersebut.
    Else
    Foreach kemungkinan langkah yang ada
    Cari langkah lawan yang bernilai minimum.
    Return nilai dari langkah tersebut.
    Pilih langkah yang bernilai maksimum darilangkah-langkah tersebut. "

    Analisis
    Analisis dalam kasus ini, pada permainan tic-tac-toe menggunakan algoritma minimax, dimana AI akan menelusuri semua kemugkinan langkah yang akan dilakukan oleh pemain. SehinggaAI akan selalu mengetahui kemungkinan pemain untuk menang dan memblok semua langkah kemenangan pemain.
    Dengan demikian permainan akan selalu seri apabila pemain cukup teliti dalam menentukan langkah. Namun jika pemain melakukan langkah yang salah, maka AI akan langsung menggunakan kesempatan tersebut untuk mengambil langkah yang akan mengarahkannya ke hasil akhir berupa kemenangan atau seri.








    0 Responses to “analisa 5 game serta algoritma yang dipakai”

    Posting Komentar

    Subscribe