Rabu, 30 Mei 2018

Finite State Machine (FSM) dan Pseudocode

Membuat FSM sederhana minimal 10 states yang dilengkapi dengan Pseudocode dan penjelasannya.

Finite State Machine (FSM)


Pseudocode
void Step(int *state) { // call by reference since state can change
    switch(state) {
       
     case 0:  // level awal
            LevelAwal();
            if( SeeEnemy() )    { *state = 1; }
            break;
        
        case 1:  // Diam
            Diam();
            if( LowOnHealth() ) { *state = 2; }
            if( NoEnemy() )     { *state = 0; }
            break;

case 2:  // Jalan
            Jalan();
            if( LowOnHealth() ) { *state = 2; }
            if( NoEnemy() )     { *state = 0; }
            break;

case 3:  // Kotak
            Kotak();
            if( LowOnHealth() ) { *state = 2; }
            if( NoEnemy() )     { *state = 0; }
            break;

case 4:  // Soal
            Soal();
            if( LowOnHealth() ) { *state = 3; }
            if( Enemy() )     { *state = 7; }
            break;

case 5:  // Menembak
            Menembak();
            if( LowOnHealth() ) { *state = 5; }
            if( Enemy() )     { *state = 02 }
            break;

case 6:  // Lari
            Lari();
            if( LowOnHealth() ) { *state = 5; }
            if( Enemy() )     { *state = 2; }
            break;

case 7:  // Musuh
            Musuh();
            if( LowOnHealth() ) { *state = 6; }
            if( Enemy() )     { *state = 4; }
            break;

case 8:  // Next Level
            NextLevel();
            if( LowOnHealth() ) { *state = 7; }
            if( Enemy() )     { *state = 9; }
            break;

        case 9:  // Game Over
            GameOver();
            if( NoEnemy() )     { *state = 0; }        
            break;
    }
}


Penjelasannya: 
Pemain akan bermain dengan level awal, kemudian diam lalu mencari jalan dan di perjalanan menemukan sebuah kotak yang dimana kotak tersebut terdapat soal yang sudah berisi huruf hijaiyah. Jika pemain dapat menjawab soal akan ke level selanjutnya. untuk mendapatkan kotak tersebut tentunya tidak mudah karena harus melewati rintangan atau membunuh musuh terlebih dahulu untuk bisa menjawab soal. Pemain dapat menghindari musuh dengan menembak atau menghindar terlebih dahulu tetapi jika pemain tidak dapat menghindar maka akan game over sebaliknya jika pemain dapat menghindar dari musuh akan ke level selanjutnya.


Referensi:
http://pzuh.blogspot.com/2011/09/actionscript-30-finite-state-machine.html
https://web.cs.wpi.edu/~imgd4000/d07/slides/AI.pp

2 komentar:

  1. Masih belum paham kak.. coba di kasih penjelasan yg lebih detail buat orang awam kyk aku

    BalasHapus
  2. coba cek di referensinya itu aja

    BalasHapus