Rabu, 30 Mei 2018

FSM dan Pseudocode

1. FSMFinite State Machine )



2. Pseudocode

    using UnityEngine;
    using System.Collections;

    public class TugasGameFSM : MonoBehaviour {
          public enum TurnStates{
               masukGame, diam, berjalan, rintangan, sampah, player, waktu,
               habis, menyentuh, mendapatkan, gameOver, nextLevel, randomObject,
           }

    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( masuk game ()) {state = diam:}
            break;
         case TurnStates.LevelAwal:
         if( masuk game ()) {state = random object:}
            break;
         case TurnStates.berjalan:
         if( mencari sampah ()) {state = berjalan;}
            break;
         case TurnStates.quest:
         if( pick up sampah ()) {state = point;}
            break;
         case TurnStates.lompat:
         if(rintangan ()) {state = menhindar ;}
           break;
         case TurnStates.rintangan:
         if (terkena rintangan ()) {state = game over;}
            break;
         case TurnStates.pick up:
         if( pick up 10 sampah ()) {state = next level;}
   
         case TurnStates.waktu:
         if(waktu masih tersedia ()) {state = jalan;}
         else (waktu sudah habis ()) {state = game over;}
            break;
         case TurnStates.sampah:
         if( pick up sampah()) {state = audio efek;}
           break;
         case TurnState.NextGame :
         if (sukses level 1 ()) {state = LevelBaru;}
            break;
         }
     yield return null;
        }
    }


3. Penjelasan

    Padaa saat game di mulai yaitu pada level 1 player akan dalam posisi/keadaan diam, di dalam game pemain harus mencari beberapa object sampah yang merupakan quest dari game, ketika player pick up sampah akan muncul audio efek. Untuk dapat pick up sampah tidaklah mudah player harus menghindari semua rintangan yang ada agar dapat pick up sampah sesuai jumlah dari quest. player akan mendapatkan point setiap player pick up sampah, dan jumlah point akan di munculkan beberapa saat sebelum game next level. Object sampah seta rintangan akan random position pada saat masuk game pada awal game di mulai. Game memiliki waktu/timer 40 detik jika player belum mendapatkan sampah yang di inginkan quest yaitu 10 sampah maka game akan berakhir dan kembali pada game awal begitu juga pada saat player terkena rintangan, tapi jika waktu belum habis pemain dapat melanjutkan permainan.


4. Referensi

https://umanium.wordpress.com/2013/03/08/pseudocode-agar-kita-mengerti-lebih-baik/
http://kingkyshared.blogspot.com/2015/01/penjelasan-fsm.html
https://shiirefaa.blogspot.com/2015/10/pengertian-dan-pengenalan-pseudocode.html
https://dokumen.tips/documents/penerapan-fsm-pada-game-golden-miner-berbasis-teks-menggunakan- adobe-flash.html
https://forum.unity.com/threads/trouble-with-a-switch-case-finite-state-machine-in-c.107979/
http://pzuh.blogspot.com/2011/09/actionscript-30-finite-state-machine.html