Visualisasi dan Implementasi Artifical Intelligence pada game Wumpus - Muchammad Andre Prasetya










WELCOME TO MY BLOG'S

DON'T FORGET FOR SUBSCRIBE, COMMENT AND ETC

NEW UPDATE

Post Top Ad

Sabtu, 11 November 2017

Visualisasi dan Implementasi Artifical Intelligence pada game Wumpus


Coding untuk Hunt pada Game Wumpus
Artificial intelligence agent untuk Hunt Wumpus.

AI Agent

Penerapan logic agent pada AI untuk membuat Implementasi Custom Class pada kelas interface wumpus.Agent.

Coding:
public class CustomAgent implements Agent {
    /**
     * Do something before take the action, probably debug...
     */
    public void beforeAction(Player player) {
        System.out.println(player.render());
        System.out.println(player.debug());
    }

    /**
     * Do something with the player
     */

 public Action getAction(Player player) {
        // Mengetahui Percept
        boolean bump = player.hasBump();
        boolean breeze = player.hasBreeze();
        boolean stench = player.hasStench();
        boolean scream = player.hasScream();
        boolean glitter = player.hasGlitter();

        if (bump || breeze || stench || scream || glitter) {
            // TODO: Do some action based on the players perception...
        }

        return Action.NO_OP;
    }

    /**
     * Do something after taking the action, probably debug...
     */

 public void afterAction(Player player) {
        // Players Last action
        System.out.println(player.getLastAction());
        // Show a very happy message
        if (player.isDead()) {
            System.out.println("GAME OVER!");
        }
    }
}

Untuk melanjutkan interface pada method getAction untuk mengimplementasikan player untuk melanjutkan jalannya game. Pada method ini kita dapat mengakses perception dari semua player untuk mendapatkan segala informasi.

Untuk menjalankan custom Agent, kita harus memanggil Main Class pada Main method dari World class childern tersebut.

// Membuat inisialisasi Agent AI
Agent agent = new CustomAgent();
// Membuat wordls dan deklarasi pada agent
World world = new World(4, 4);
world.execute(agent);
// Print the results
System.out.println(world.renderScore());

Output
Results for *CustomAgent*:
OutCome
Score
Steps
---
---
---
WIN
943
50

Debug
Berikut adalah method untuk debug pada agents strategy (jangan lupa codingan System.out.println):

// Merenders perspective board pada players
player.render();
// Membuat Informasi Playes sebelumnya
player.debug();
// Melanjutkan kelas aksi
player.getLastAction();
// Step-by-step debug
Environment.trace();


Output

















// player.debug()
Position: (1,3,E)
Score: -1
Perceptions: [BREEZE]
GO_FORWARD
Press ENTER to continue...

Deterministic board
Pada akses default, semua bahaya dan gold berada pada pengaturan random/acak. Kita bisa mengubah akses pada board dalam method ini:

// Membuat determinan wilayah pada game
World world = new World(4, 4);
world.setWumpus(0, 1);
world.setPit(2, 2);
world.setPit(3, 0);
world.setGold(1, 1);

// Menampilkan Board Game
System.out.println(world.renderAll());
Output


~


P
W
$
*



~

P



→ 





Simulasi pada Wumpus:

To build simulator: ~> java WorldApplication.java

To run simulator: ~> java WorldApplication [options]


  
Command-line options available:
  
-d <dimension>
: menerapkan dimensi pada Wumpus World, dimension x dimension. Default: 4 (a 4x4 world)
  
-s <steps>
: penerapan angka maksimum pada step. Default:50
  
-t <trials>
: penerapan angka untuk percobaan pada game. Default: 1
  
-a <randAgent>
: penerapan lokasi agent dan random generate (penempatan acak) Default: true
  
-r <seed>
: penerapan pada makanan acak pada board. Default: (random integer)
  
-n <nonDeterm>
: penerapan pada agent untuk terus melanjutkan jalan (GO_FORWARD) pada aksi ketika sudah mati, selagi board itu masih dalam non-deterministic. Default: false


NOTE: modifikasi pada AgentFunction.java untuk mengimplementasi agent yang berbeda.


https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEpJNrVSMT8sIPdUu6gTzbERq8WNVTs9D_dFFS7HL4W5zzOVZho4msnnt6Sa05xX_bSFipwp4Hk4EgXfdab-VOUz6VRjR8WEBWbEpbjo6fFheqqBM8Dv4QZTES57yMitYcZzr9yO4xLA-A/s320/wumpus-world.gifP - Pit
W - live Wumpus
*  - Wumpus Mati
G - Gold
A - agent menghadap ke atas
> - agent menghadap ke kanan
V - agent menghadap ke bawah
< - agent menghadap ke kiri



Untuk mencoba game wumpus, dapat didownload melalui link dibawah!!
Wumpus Lite Games 

Tidak ada komentar:

Posting Komentar

Post Top Ad

Add Your Spot Ads There!!