Finite State Machine (FSM) dan Pseudocode


Hey guys, lama ni gk nulis di blog.....,,

Karena kebetulan ada tugas Game Edukasi jadi kali ini saya akan membuat Finite Machine (FSM) sederhana dengan minimal 10 states yang dlengkapi dengan Pseudocode dan penjelasannya.

1. Finite State Machin (FSM)

2. Pseudocode

using UnityEngine;
using System.Collections;

public class GameFSM : MonoBehaviour {
      public enum TurnStates{
           masuklevel, 
           diam, 
           berjalan, 
           koin, 
           box, 
           player, 
           huruf aksara,    
           kunci, 
           timer, 
           habis,
           musuh,
           mengenai,
           mendapatkan, 
           GameOver, 
           NextLevel
       }

public TurnStates state;
public bool gameInProgress = true;

void Start () {
state = GameFSM.Mulai.Init;
StartCoroutine ("TurnFSM");
}
private IEnumerator TurnFSM (){
while(gameInProgress){
     switch(state){
     case TurnStates.LevelAwal:
     if( Permainan Awal()) {* state = diam:}
            break;
     case TurnStates.diam:
     if(Mulai()) {* state = berjalan;}
            break;
     case TurnStates.berjalan:
     if( berjalan()) {* state = koin;}
            break;
     case TurnStates.koin:
     if( mencari koin()) {* state = point;}
     if (menghindar ()) {* state = Musuh;}
            break;
     case TurnStates.benda:
     if( mencari koin ()) {* state = box;}
     if(mendekati()) {* state = Musuh;}
            break;
     case TurnStates.musuh:
     if( Terkena Enemy ()) {* state = timer;}
            break;
     case TurnStates.box:
    if( benar ()) {* state = huruf aksara jawa;}
            break;
     case TurnStates.timer:
     if(waktu masih tersedia ()) {* state = jalan;}
     else (waktu sudah habis ()) {* state = GameOver;}
            break;
     case TurnStates.Kunci:
     if( berhasil menjawab()) {*state = NextGame;}
           break;
     case TurnState.NextGame :
      if (DoneLevel ()) {* state = LevelBaru;}
            break;
     }
 yield return null;
    } 
}

3. Penjelasan

        Game akan mulai dimainkan oleh pengguna melalui tahap pertama yaitu memulai permainan awal pada level 1, kemudian pemain berada pada posisi diam, apabila anak panah pada keyboard di jalankan maka otomatis pemain atau player akan berjalan. Player tidak hanya bisa berjalan akan tetapi player juga bisa melompat. Pada game ini player diminta berjalan menelusuri jalan untuk mencari koin terlebih dahulu, nah koin tersebut nantinya akan digunakan untuk membuka box yang berisi huruf aksara, tidak hanya huruf tetapi juga terdapat suara huruf tersebut sehingga mempermudah anak untuk mempelajari dan mengenal huruf aksara tersebut, syarat agar 1 box terbuka itu harus mengumpulkan 5 koin terlebih dahulu jadi apabila kita ingin membuka 5 box harus mengumpulkan 25 koin dalam waktu 80 detik, jika dalam waktu 80 detik tersebut player tidak berhasil membuka ke5 box tersebut maka akan game over, didalam game juga terdapat musuh yang selalu berjalan disana, jadi apabila player terkena musuh maka akan game over dan keluar total point yang diperoleh. Jika dalam waktu 80 detik berhasil membuka semua box maka player tiap membuka box player akan mendapatkan 1 kunci yang mana fungsi dari kunci adalah untuk membuka pintu, maksud pintu disini untuk next pada level berikutnya, jadi dalam 1 level harus berhasil membuk kelima box tersebut dalam waktu 80 detik agar bisa next level, jika hanya baru bisa membuka 3 box dalam waktu 80 detik maka player gagal dan akan game over. Untuk sistem permainan pada level selanjutnya juga sama.


4. Referensi


Komentar

Postingan populer dari blog ini

Game Based Learning (Pembelajaran Berbasis Game)

Algoritma dan Flowchart Pengurutan Sisipan(Insert Sort) dan Pengurutan Gelembung(Bubble Sort)

STATISTIKA & PROBABILITAS