Pages

Rabu, 30 Mei 2018

1.       Finite State Machine (FSM)  Pada kesempatan kali ini, Saya akan memberikan penjelasan singkat tentang Finite State Machine (FS...

Finite State Machine (FSM) dan Pseucode Game

Tidak ada komentar:
 
1.     Finite State Machine (FSM) 

Pada kesempatan kali ini, Saya akan memberikan penjelasan singkat tentang Finite State Machine (FSM) pada game sederhana beserta Pseudocode. Finite State Machine (FSM) adalah sebuah metodologi perancangan sistem kontrol yang menggambarkan tingkah laku atau prinsip kerja sistem dengan menggunakan tiga hal berikut: State (Keadaan), Event (kejadian) dan action (aksi). Sebagai sebuah metodologi perancangan sistem kontrol, penerapan FSM telah banyak diterapkan pada perangkat lunak, khususnya pada game. Kali ini saya membuat FSM sederhana yaitu berupa game yang nantinya bila mendapatkan koin maka akan muncul sebuah soal atau pertanyaan.

(Gambar 1. FSM Game)


1.      Pseucode
using UnityEngine;
using System.Collections;

public class GameFsm:MonoBehaviour
{
public enum TurnStates{Mulai, diam, berlari, musuh, koin, bertahan, soal, point, NextLevel, Nyawa, GameOver}

public TurnStates state;
public boll 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:}
if(terkena()){*state = musuh;}
            break;
case TurnStates.diam:
if(Mulai()){*state = berlari;}
if(dikejar()){*state = musuh;}
            break;
case TurnStates.berlari:
if(berlari()){*state = koin;}
            break;
case TurnStates.koin:
if(mencari koin()){*state = soal;}
if(bertahan()){*state = NextLevel:}
            break;
case TurnStates.bertahan:
if(sembunyi()){*state = NextLevel;}
            break;
case TurnStates.soal:
if(benar()){*state = point;}
else(salah()){*state = nyawa;}
            break;
case TurnStates.Nyawa:
if(nyawa masih ada()){*state = diam;}
else(nyawa habis()){*state = GameOver;}
            break;
case TurnStates.Point:
if(mencapai target()){*state = NextGame;}
            break;
case TurnStates.NextLevel:
if(DoneLevel()){*state = LevelBaru;}
            break;
}
yeild return null;
}
}

1.      Penjelasan Game :
Dalam game yang saya buat pada gambaran berbentuk FSM, yaitu pertama kali ke halaman utama, kemudian memilih tombol start untuk dapat memulai sebuah permainan. Player akan berada di posisi diam terlebih dahulu sebelum dijalankan, kemudian player akan berjalan untuk mendapatkan koin. Jika player diam saja, maka besar kemungkinan akan dikejar oleh musuh. Sedangkan jika player berjalan atau berlari yaitu untuk menghindari musuh. Di sela-sela permainan tersebut, nantinya akan muncul beberapa soal atau pertanyaan yang wajib di jawab. Jika jawaban benar, maka permainan akan berlanjut ke level selanjutnya, dan jika jawaban salah, maka nyawa dan kesempatan akan berkurang -1. Jika dalam kesempatan tersebut, player masih menjawab salah maka nyawa akan terus berkurang, jika nyawa habis dianggap tamat atau game over. Untuk dapat melanjutkan permainan kembali, bisa memulainya dari awal. 

 Referensi
 http://kingkyshared.blogspot.com/2015/01/penjelasan-fsm.html
https://forum.unity.com/threads/trouble-with-a-switch-case-finite-state-machine-in-c.107979/

Tidak ada komentar:

Posting Komentar

 
Blinking Cute Box Cat