RPS Game (User VS Random)
"Ingat masa kecil? Ketika kita sedang bermain sesuatu dan ada yang harus mengalah diantara kita, maka jalan keluarnya adalah diundi dengan menggunakan permainan "Gunting Batu Kertas". Yang kalah akan dieliminasi hingga ditemukan satu pemenangnya. Dalam dunia software development, prinsip Gunting Batu Kertas (GBK) atau dalam bahasa Inggris disebut Rock Paper Scissors (RPS). Kita kadang berfikir bahwa kita menang karena itu adalah keberuntungan kita dalam mengeluarkan Gunting, Batu ataupun kertas pada saat yang tepat. Namun sebenarnya hal itu memiliki strategi tersendiri. Di Jepang, penelitian mengenai strategi RPS ini dekembangkan karena prinsip RPS ini diterapkan ke dalam prinsip kerja sebuah software atau aplikasi"Disini, saya akan mencoba membuat program RPS (Rock, Paper dan Scissors) ke dalam program Java menggunakan aplikasi NetBeans. Sebenarnya, prinsip programnya tidaklah terlalu sulit. Kita bahkan bisa membuatnya lebih sederhana dan lebih simpel. Itu semua bergantung bagaimana logika kita berjalan untuk menyelesaikan masalah yang diberikan. Berikut adalah program Java mengenai game RPS yang diawali dengan meminta input dari user berupa integer untuk menentukan banyaknya ronde yang akan dimainkan.Kemudian lawan kita adalah program dari komputer yang kita buat random. Sehingga komputer akan mengeluarkan pilihannya secara acak. Berikut source codenya:
import java.util.Scanner;
import java.util.Random;
/**
*
* @Muh. Idil Haq Amir
* www.idil810.blogspot.com
*/
public class P1_VS_Komputer_Random{
public static void main(String [] args){ //Main class
//inisialisasi skor masing-masing
int skorKom = 0;
int skorP1 = 0;
int loseP1 = 0;
int loseKom = 0;
int Draw = 0;
Random random = new Random();
Scanner reader = new Scanner (System.in);
System.out.println("Main berapa ronde? Masukkan jumlah ronde:");
int n=reader.nextInt(); //Meminta masukan user untuk jumlah perputaran
for (int i=1;i<=n;i++){
System.out.println("");
System.out.println("\n=>Ronde ke-"+i);
System.out.println("Masukkan pilihan Anda: "
+ "\n1. Gunting"
+ "\n2. Batu"
+ "\n3. Kertas");
int pilihan = reader.nextInt();
int P1 = pilihan;
//Mengeluarkan output kata dari angka yang dimasukkan
if(P1==1){
System.out.println("Anda memilih Gunting");
}else{
if(P1==2){
System.out.println("Anda memilih Batu");
}else{
if(P1==3){
System.out.println("Anda memilih Kertas");
}else{
System.out.println("Anda memasukkan angka yang salah!");
System.out.println("Masukkan angka 1, 2 atau 3!");
return;
}
}
}
int Kom = random.nextInt(3)+1; //Membuat pilihan acak dari komputer
if(Kom==1){
System.out.println("Komputer memilih Gunting");
}else{
if(Kom==2){
System.out.println("Komputer memilih Batu");
}else{
System.out.println("Komputer memilih Kertas");
}
}
switch (Kom){
case 1: Kom = 1; break;
case 2: Kom = 2; break;
case 3: Kom = 3; break;
}
if (Kom == P1){
System.out.print("\nDraw ");
Draw++;
}else{
if (Kom == 2){
if (P1 == 3){
System.out.print("\nKertas membungkus Batu, Anda Menang!");
skorP1++;
loseKom++;
}
if (P1 == 1){
System.out.print("\nBatu menumbuk Gunting, Anda Kalah!");
skorKom++;
loseP1++;
}
}
if (Kom == 3){
if (P1 == 2){
System.out.print("\nKertas membungkus Batu, Anda Kalah!");
skorKom++;
loseP1++;
}
if (P1 == 1){
System.out.print("\nGunting memotong Kertas, Anda Menang!");
skorP1++;
loseKom++;
}
}
if (Kom == 1){
if (P1 == 2){
System.out.print("\nBatu menumbuk Gunting, Anda Menang!");
loseKom++;
skorP1++;
}
if (P1 == 3){
System.out.print("\nGunting memotong Kertas, Anda Kalah!");
loseP1++;
skorKom++;
}
}
}
}
//print out hasil pertandingan sesuai dengan jumlah ronde
System.out.print("\n");
System.out.print("\n=>Skor Anda:"
+ "\nMenang : "+skorP1
+ "\nKalah : "+loseP1);
System.out.print("\n=>Skor Komputer:"
+ "\nMenang : "+skorKom
+ "\nKalah : "+loseKom);
System.out.println("\n=>Draw : "+Draw);
}
}
Mudah bukan?? Kita hanya menggunakan logika if() dan for() sebagai perulangan untuk setiap rondenya. Selamat Mencoba! :)
Di postingan selanjutnya, saya akan mencoba membuat RPS yang mana programnya akan mengadu strategi yang diterapkan. Kita akan lihat strategi yang manakah yang paling baik digunakan antara Random dan Roulette Wheel.
0 comments: