Membuat Game Batu-Gunting-Kertas dengan JAVA

Membuat Game Batu-Gunting-Kertas dengan JAVA

DailyBlog.id - Siapa yang tidak kenal dengan Batu-Gunting-Kertas? untuk masa kecil kita, pasti ada yang sering memainkan permainan ini. Walaupun terlihat sangat sederhana, namun asik untuk dimainkan. Di artikel kali ini, saya akan memberikan tutorial bagaimana cara membuat game Batu-Gunting-Kertas ini menggunakan JAVA. Cukup sederhana gamenya, dan mungkin bisa cocok untuk kalian yang ditugaskan membuat game yang sederhana. Oke langsung saja ke tutorial pembuatannya.

Di game ini, nantinya kalian akan memilih antara batu, gunting, atau kertas. Dan musuh kalian yaitu berupa komputer yang akan merandom angka yang menghasilkan batu, gunting, atau kertas. Bisa dibilang bahwa kalian akan bermain dengan komputer.

Membuat Game Batu-Gunting-Kertas dengan JAVA

Pada tahap pembuatan game ini, nanti akan ada class tambahan untuk mengatur semua permainan. Untuk mengatur jalannya permainan ini, nanti akan ada beberapa function yaitu:

  • Function untuk menambah score
  • Function untuk menentukan hasilnya menang atau kalah saat hasil akhir pilihan tangan
  • Function untuk mendeteksi pilihan tangan
  • Dan function untuk menentukan hasil akhir game menang atau kalah

Oke langsung saja kita buat game batu, gunting, kertasnya.

Langkah pertama yang dapat kalian lakukan yaitu buat file dengan nama file BatuGuntingKertas.java. Setelah itu kalian copy script yang ada di bawah ini:

public class BatuGuntingKertas
{

}


Tahap selanjutnya yaitu pembuatan variable untuk classnya. Setelah kalian copy script yang ada di bawah ini, kalian masukan ke dalam class BatuGuntingKertas. Variabel" yang ada di bawah ini, fungsinya untuk menyimpan inputan, serta score yang di peroleh nanti saat game berlangsung.

public int inputPemain;
public int inputKomputer;
private int nilaiPemain;
private int nilaiKomputer;


Setelah itu, tahap selanjutnya yaitu pembuatan function untuk menambah score. Kalian bisa copy script yang ada di bawah ini dan masukan ke dalam class BatuGuntingKertas.

public void setGame(int player, int komputer)
{
    // Input value yang dipilih oleh pemain atau komputer
    this.inputPemain    = player;
    this.inputKomputer  = komputer;

    // Jika player menang tambahkan skor milik pemain, dan sebaliknya
    if ((player == 0 && komputer == 2) ||
            (player == 2 && komputer == 1) ||
            (player == 1 && komputer == 0))
        this.nilaiPemain++;
    else if ((komputer == 0 && player == 2) ||
            (komputer == 2 && player == 1) ||
            (komputer == 1 && player == 0))
        this.nilaiKomputer++;
}


Jika sudah, tahap selanjutnya yaitu membuat function untuk menentukan apakah hasil dari pilihan tangan itu menang atau kalah. Kalian bisa copy script yang ada di bawah ini dan masukan ke dalam class BatuGuntingKertas.

public void getResult()
{
    String getResult;

    // Jika pemain menang, Cetak "Hasil: Menang"
    if ((this.inputPemain == 0 && this.inputKomputer == 2) ||
            (this.inputPemain == 2 && this.inputKomputer == 1) ||
            (this.inputPemain == 1 && this.inputKomputer == 0))
    {
        getResult = "Menang";
    }
    // Jika komputer menang, Cetak "Hasil: Kalah"
    else if ((this.inputKomputer == 0 && this.inputPemain == 2) ||
            (this.inputKomputer == 2 && this.inputPemain == 1) ||
            (this.inputKomputer == 1 && this.inputPemain == 0))
    {
        getResult = "Kalah";
    }
    // Jika skor sama, Cetak "Hasil: Seri"
    else getResult = "Seri";

    System.out.println("Hasil: " + getResult);
}


Setelah itu agar pilihan tangan yang berupa angka (0 s.d 2) bisa menjadi batu, gunting, kertas. Kalian bisa buat function untuk pilihan tangannya dengan cara copy script yang ada di bawah ini dan masukan ke dalam class BatuGuntingKertas.

public String pilihanTangan(int tipe)
{
    if (tipe == 0)
        return "Batu";
    else if (tipe == 1)
        return "Kertas";
    else
        return "Gunting";
}


Jika sudah, maka tahap terakhir dalam pembuat class BatuGuntingKertas yaitu membuat function untuk menentukan siapa pemenang dari game ini. Kalian bisa copy script yang ada di bawah ini dan masukan ke dalam class BatuGuntingKertas.

public void hasilPermainan()
{
    String hasilPemain;

    if (this.nilaiPemain > this.nilaiKomputer)
        hasilPemain = "Anda telah menjadi juara dan komputer kalah.";
    else if (this.nilaiPemain < this.nilaiKomputer)
        hasilPemain = "Komputer telah menjadi juara dan Anda kalah.";
    else hasilPemain = "Tidak ada yang juara, skor yang diperoleh sama.";

    System.out.println("\nHasil Permainan: ");
    System.out.println("* Anda mendapatkan skor: " + this.nilaiPemain);
    System.out.println("* Komputer mendapatkan skor: " + this.nilaiKomputer);
    System.out.println(hasilPemain);
}


Maka untuk script fullnya dari class BatuGuntingKeras.java, kalian bisa copy script yang ada di bawah ini.

BatuGuntingKertas.java

public class BatuGuntingKertas
{
    public int inputPemain;
    public int inputKomputer;
    private int nilaiPemain;
    private int nilaiKomputer;

    public void setGame(int player, int komputer)
    {
        // Input value yang dipilih oleh pemain atau komputer
        this.inputPemain    = player;
        this.inputKomputer  = komputer;

        // Jika player menang tambahkan skor milik pemain, dan sebaliknya
        if ((player == 0 && komputer == 2) ||
                (player == 2 && komputer == 1) ||
                (player == 1 && komputer == 0))
            this.nilaiPemain++;
        else if ((komputer == 0 && player == 2) ||
                (komputer == 2 && player == 1) ||
                (komputer == 1 && player == 0))
            this.nilaiKomputer++;
    }

    public void getResult()
    {
        String getResult;

        // Jika pemain menang, Cetak "Hasil: Menang"
        if ((this.inputPemain == 0 && this.inputKomputer == 2) ||
                (this.inputPemain == 2 && this.inputKomputer == 1) ||
                (this.inputPemain == 1 && this.inputKomputer == 0))
        {
            getResult = "Menang";
        }
        // Jika komputer menang, Cetak "Hasil: Kalah"
        else if ((this.inputKomputer == 0 && this.inputPemain == 2) ||
                (this.inputKomputer == 2 && this.inputPemain == 1) ||
                (this.inputKomputer == 1 && this.inputPemain == 0))
        {
            getResult = "Kalah";
        }
        // Jika skor sama, Cetak "Hasil: Seri"
        else getResult = "Seri";

        System.out.println("Hasil: " + getResult);
    }

    public String pilihanTangan(int tipe)
    {
        if (tipe == 0)
            return "Batu";
        else if (tipe == 1)
            return "Kertas";
        else
            return "Gunting";
    }

    public void hasilPermainan()
    {
        String hasilPemain;

        if (this.nilaiPemain > this.nilaiKomputer)
            hasilPemain = "Anda telah menjadi juara dan komputer kalah.";
        else if (this.nilaiPemain < this.nilaiKomputer)
            hasilPemain = "Komputer telah menjadi juara dan Anda kalah.";
        else hasilPemain = "Tidak ada yang juara, skor yang diperoleh sama.";

        System.out.println("\nHasil Permainan: ");
        System.out.println("* Anda mendapatkan skor: " + this.nilaiPemain);
        System.out.println("* Komputer mendapatkan skor: " + this.nilaiKomputer);
        System.out.println(hasilPemain);
    }
}


Jika class BatuGuntingKertas nya sudah dibuat, maka sekarang membuat tampilan gamenya seperti yang ada di thumbnail artikel ini. Maka kalian bisa membuat file dengan nama Main.java, setelah itu kalian bisa copy script yang ada di bawah ini.

Main.java

import java.util.Random;
import java.util.Scanner;

public class Main
{
    public static void main(String[] args)
    {
        Scanner scan = new Scanner(System.in);
        BatuGuntingKertas gameBGK = new BatuGuntingKertas();

        System.out.println("============= Batu - Gunting - Kertas =============");
        System.out.print("Berapa kali ingin bermain? ");
        int berapaKali = scan.nextInt();

        int count = 0;
        while (count < berapaKali)
        {
            System.out.println("Pilih tangan: (0: Batu, 1: Kertas, 2: Gunting)");

            System.out.print("Masukkan nomor (0-2): ");
            int pilihTangan = scan.nextInt();

            if (pilihTangan < 0 || pilihTangan > 2)
                pilihTangan = 0;

            System.out.println("Anda memilih: " + gameBGK.pilihanTangan(pilihTangan));

            int randomKomputer = new Random().nextInt(3);
            System.out.println("Komputer memilih: " + gameBGK.pilihanTangan(randomKomputer));

            gameBGK.setGame(pilihTangan, randomKomputer);
            gameBGK.getResult();
            count++;
        }

        gameBGK.hasilPermainan();
        System.out.println("===================================================");
    }
}


Game batu, gunting, kertas ini akan di mainkan secara berulang (menggunakan looping) yang inputannya diminta dari user yang ingin memainkan berapa lama gamenya. Dan jika loopingnya sudah mencapai inputan dari user, maka looping akan berhenti, lalu akan keluar score dan siapa pemenang dari game ini.

Jika kalian ingin mengunduh scriptnya, kalian bisa mengunjungi link github saya yang ada di bawah ini.
https://github.com/andspdev/batu-gunting-kertas-java


Mungkin cukup sekian artikel dari saya, semoga artikel yang saya berikan ini dapat bermanfaat bagi kalian semua. Jika saya ada salah pengetikan, saya mohon maaf. Sekian dan terima kasih.

Selamat Mencoba!...

Post a Comment (0)
Previous Post Next Post