Permainan RPS dapat dibuat melalui Java dengan menggunakan source code yang telah disediakan di bawah ini. Akan tetapi sebelumnya. untuk dapat membuat programnya kita harus membuat 2 kelas. Yang satu merupakan kelas untuk main kelas atau dengan kata lain sebagai interface dengan user. Dan Kelas yang satu lagi untuk menyimpan process dari program tersebut. Dalam source code berikut ini, permainan akan berakhir pada ronde ke 10.
Untuk kelas yang pertama berikut source codenya:
package rps;
import java.util.Scanner;
public class RPS {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int in = menu();
while (in != 4) {
if (in != 1 && in != 2 && in != 3) {
System.out.println("Please enter valid choices");
in = menu();
} else {
Process pro = new Process(in);
in = menu();
}
}
System.out.println("");
System.out.println("Exit");
System.exit(0);
}
public static int menu () {
Scanner scan = new Scanner(System.in);
System.out.println("");
System.out.println("Welcome to RPS Game");
System.out.println("Enter your choices");
System.out.println("1.Rock");
System.out.println("2.Paper");
System.out.println("3.Scissor");
System.out.println("");
System.out.println("4.Exit");
int in = scan.nextInt();
return in;
}
Berikut adalah penjelasan dari source code di atas:
import java.util.Scanner;
# Kode tersebut digunakan karena nanti kita akan menggunakan scanner,
Scanner scan = new Scanner(System.in);
# berfungsi untuk membaca inputan dari user. Yaitu pada saat user memasukkan pilihannya antara 1 = Rock, 2 = Paper dan 3 = Scissor.
# berfungsi untuk menampilkan tampilan menu.
while (in != 4) {
if (in != 1 && in != 2 && in != 3) {
System.out.println("Please enter valid choices");
in = menu();
# Pada baris pertama dan kedua dijelaskan ketika pilihan inputan dari user tidak sama dengan 4 dan juga tidak sama dengan 1, 2 ataupun 3, maka program akan mengeluarkan output yang berisi statement untuk meminta user memasukkan pilihan inputan yang valid. Hal ini dikarenakan pilihan yang tersedia hanyalah antara 1,2,3 atau 4. (Akan dijelaskan di bawah). Selanjutnya pada baris terakhir akan terjadi perulangan
pada menu.
Process pro = new Process(in)
# Ketika pilihan inputan user selain dari tersebut (antara 1,2, atau 3 dan tidak 4) program akan memangggilkan method Process yang ada pada kelas yang satu lagi (kelas Process).
# Setelah method tersebut dieksekusi, akan kembali terjadi perulangan pada menu.
System.out.println("");
System.out.println("Exit");
System.exit(0);
# Ketika pilihan inputan dari user adalah 4, maka program akan berhenti atau selesai.
public static int menu () {
# Merupakan menu yang akan dipilih user.
System.out.println("");
System.out.println("Welcome to RPS Game");
System.out.println("Enter your choices");
System.out.println("1.Rock");
System.out.println("2.Paper");
System.out.println("3.Scissor");
System.out.println("");
System.out.println("4.Exit");
# Merupakan menu dari program dan juga tersedia menu pilihan dari user.
Selanjutnya, source code untuk kelas process sebagai berikut :
package rps;
import java.util.Scanner;
public final class Process {
static int m1, s1, k1;
static int m2, s2, k2;
static int ronde;
static int pilih1;
public void setCPU (int m, int s, int k) {
m2 = m;
s2 = s;
k2 = k;
}
public Process(int in) {
System.out.println("");
System.out.print("Anda memilih ");
if (in == 1) {
System.out.print("Rock");
} else if (in == 2) {
System.out.print("Paper");
} else {
System.out.print("Scissor");
}
System.out.print(" dan CPU memilih ");
int cpu;
if (ronde ==1) {cpu = (int) (Math.random()*4);
} else cpu = pilih1;
pilih1 = in;
while (cpu != 1 && cpu != 2 && cpu != 3) {
cpu = (int) (Math.random()*4);
}
if (cpu == 1) {
System.out.print("Rock");
} else if (cpu == 2) {
System.out.print("Paper");
} else if (cpu == 3) {
System.out.print("Scissor");
}
if (in == cpu) {
s1++;
s2++;
ronde++;
Print();
} else if (in == 1 && cpu == 2) {
k1++;
m2++;
ronde++;
Print();
} else if (in == 2 && cpu == 1) {
m1++;
k2++;
ronde++;
in=pilih1;
Print();
} else if (in == 2 && cpu == 3) {
k1++;
m2++;
ronde++;
Print();
} else if (in == 3 && cpu == 2) {
m1++;
k2++;
ronde++;
in=pilih1;
Print();
} else if (in == 1 && cpu == 3) {
m1++;
k2++;
ronde++;
in=pilih1;
Print();
} else if (in == 3 && cpu == 1) {
k1++;
m2++;
ronde++;
Print();
}
}
public void Print() {
System.out.println("");
System.out.println("Anda \nmenang :" + m1 + " seri :" + s1 + " kalah :" + k1);
System.out.println("CPU \nmenang :" + m2 + " seri :" + s2 + " kalah :" + k2);
System.out.println("ronde:"+ ronde);
if (ronde == 10){
System.out.println("Permainan selesai");
System.exit(0);
{
}
}
}}
import java.util.Scanner;
public final class Process {
static int m1, s1, k1;
static int m2, s2, k2;
static int ronde;
static int pilih1;
public void setCPU (int m, int s, int k) {
m2 = m;
s2 = s;
k2 = k;
}
public Process(int in) {
System.out.println("");
System.out.print("Anda memilih ");
if (in == 1) {
System.out.print("Rock");
} else if (in == 2) {
System.out.print("Paper");
} else {
System.out.print("Scissor");
}
System.out.print(" dan CPU memilih ");
int cpu;
if (ronde ==1) {cpu = (int) (Math.random()*4);
} else cpu = pilih1;
pilih1 = in;
while (cpu != 1 && cpu != 2 && cpu != 3) {
cpu = (int) (Math.random()*4);
}
if (cpu == 1) {
System.out.print("Rock");
} else if (cpu == 2) {
System.out.print("Paper");
} else if (cpu == 3) {
System.out.print("Scissor");
}
if (in == cpu) {
s1++;
s2++;
ronde++;
Print();
} else if (in == 1 && cpu == 2) {
k1++;
m2++;
ronde++;
Print();
} else if (in == 2 && cpu == 1) {
m1++;
k2++;
ronde++;
in=pilih1;
Print();
} else if (in == 2 && cpu == 3) {
k1++;
m2++;
ronde++;
Print();
} else if (in == 3 && cpu == 2) {
m1++;
k2++;
ronde++;
in=pilih1;
Print();
} else if (in == 1 && cpu == 3) {
m1++;
k2++;
ronde++;
in=pilih1;
Print();
} else if (in == 3 && cpu == 1) {
k1++;
m2++;
ronde++;
Print();
}
}
public void Print() {
System.out.println("");
System.out.println("Anda \nmenang :" + m1 + " seri :" + s1 + " kalah :" + k1);
System.out.println("CPU \nmenang :" + m2 + " seri :" + s2 + " kalah :" + k2);
System.out.println("ronde:"+ ronde);
if (ronde == 10){
System.out.println("Permainan selesai");
System.exit(0);
{
}
}
}}
Berikut adalah penjelasan dari source code di atas:
static int m1, s1, k1;
static int m2, s2, k2;
static int ronde;
static int pilih1;
# Pertama kita definisikan variabel-variabel yang ada di dalam source code yang dalam hal ini semuanya bernilai integer. Variabel m untuk jumlah berapa kali yang menang, s untuk jumlah berapa kali yang seri dan k untuk jumlah berapa kali yang kalah. 1 untuk user dan 2 untuk CPU. Variabel ronde untuk jumlah ronde permainan dan variabel pilih 1 untuk pilihan dari CPU.
public void setCPU (int m, int s, int k) {
m2 = m;
s2 = s;
k2 = k;
}
# Method yang berfungsi untuk menyimpan pilihan dari CPU.
System.out.println("");
System.out.print("Anda memilih ");
if (in == 1) {
System.out.print("Rock");
} else if (in == 2) {
System.out.print("Paper");
} else {
System.out.print("Scissor");
}
System.out.print(" dan CPU memilih ");
# Tampilan pemberitahuan dari apa yang telah user dan CPU pilih.
int cpu;
if (ronde ==1) {cpu = (int) (Math.random()*4);
} else cpu = pilih1;
pilih1 = in;
while (cpu != 1 && cpu != 2 && cpu != 3) {
cpu = (int) (Math.random()*4);
# Pilihan dari CPU akan disimpan ke dalam variabel pilih1. Ketika pilihan dari CPU tidak sama dengan 1, 2 atau 3, maka CPU akan melakukan pengulangan untuk memilih kembali.
System.out.print("Rock");
} else if (cpu == 2) {
System.out.print("Paper");
} else if (cpu == 3) {
System.out.print("Scissor");
}
# Jika yang dipilih CPU adalah 1, maka akan keluar output yang memberitahukan bahwa pilihan CPU adalah Rock. Dan begitu seterusnya.
if (in == cpu) {
s1++;
s2++;
ronde++;
Print();
# Jika pilihan user sama dengan CPU, maka s1 dan s2 akan bertambah. Kemudian jumlah ronde juga akan bertambah. Selanjutnya program akan memanggill method print.
Begitu juga dengan aturan-aturan di bawahnya sesuai dengan source codenya masing-masing.
# Method print yang berguna untuk menampilkan hasil dari permainan per ronde.
System.out.println("Anda \nmenang :" + m1 + " seri :" + s1 + " kalah :" + k1);
System.out.println("CPU \nmenang :" + m2 + " seri :" + s2 + " kalah :" + k2);
System.out.println("ronde:"+ ronde);
# Baris pertama merupakan output yang berisi statement dari hasil (menang, seri atau kalah) user.
Baris kedua merupakan output yang berisi statement dari hasil (menang, seri atau kalah) CPU.
Baris ketiga merupakan output yang berisi statement dari jumlah ronde yang telah dijalankan.
\n merupakan source code untuk enter.
("Anda \nmenang :" + m1 + " seri :" + s1 + " kalah :" + k1);
jumlah menang user berasal dari m1, seri dari s1 dan kalah dari k1.
("CPU \nmenang :" + m2 + " seri :" + s2 + " kalah :" + k2);
jumlah menang CPU berasal dari m2, seri dari s2 dan kalah dari k2.
if (ronde == 10){
System.out.println("Permainan selesai");
System.exit(0)
# Source code yang berfungsi untuk mengakhiri program apabila ronde sudah mencapai 10.