Fungsi untuk Membuat Straight dan Royal Straight di Kartu

Fungsi untuk Membuat Straight dan Royal Straight di Kartu

Dalam permainan kartu, Straight dan Royal Straight adalah dua jenis kartu yang memiliki nilai tertentu. Fungsi berikut ini akan membantu kita untuk membuat kartu-kartu tersebut.

Mengenal Kartu

Sebelum kita masuk ke fungsi, kita harus memahami bagaimana kartu-kartu diurutkan dan dibandingkan. Dalam permainan kartu, kartu-kartu dapat diurutkan berdasarkan warna (spade, clover, heart, diamond) dan nilai (2-14). Kita juga harus memahami apa itu Straight dan Royal Straight.

Fungsi IsContinuous

Fungsi IsContinuous digunakan untuk mengetahui apakah kartu-kartu yang kita miliki adalah kartu yang terurutkan secara kontinu. Fungsi ini akan membandingkan nilai kartu-kartu dan mengembalikan nilai boolean (true atau false) jika kartu-kartu tersebut terurutkan secara kontinu.

public boolean IsContinuous(ArrayList<Integer> fiveCard) {
 for(int i=1;i<5;i++) {
 if(fiveCard.contains(14) && fiveCard.contains(2)) {
 return true;
 }
 if((Integer)fiveCard.get(i-1) != (Integer)fiveCard.get(i)-1) {
 return false;
 }
 }
 return true;
}

Fungsi GetStraightResult

Fungsi GetStraightResult digunakan untuk mengetahui apakah kartu-kartu yang kita miliki adalah kartu Straight atau Royal Straight. Fungsi ini akan membandingkan warna dan nilai kartu-kartu dan mengembalikan string yang menggambarkan tipe kartu.

public String GetStraightResult(ArrayList<Integer> fiveCard, String pattern) {
 if ((fiveCard.size() >= 5) && (IsContinuous(fiveCard) == true)) {
 for (int i = fiveCard.size(); i > fiveCard.size() - 5; i--) {
 if ((Integer) fiveCard.get(i - 1) == 14 && fiveCard.contains((Integer)2)) {
 return pattern + "_A" + "_RoyalStraight";
 }
 }
 }
 return pattern + "_" + (fiveCard.get(0)) + "_Straight";
}

Penggunaan Fungsi

Fungsi IsContinuous dan GetStraightResult dapat digunakan untuk membuat kartu Straight dan Royal Straight. Kita hanya perlu memanggil fungsi-fungsi tersebut dengan parameter yang sesuai, yaitu array list yang mengandung nilai kartu-kartu dan warna kartu.

ArrayList<Integer> card = new ArrayList<>();
// ... isi card ...
if (IsContinuous(card)) {
 String result = GetStraightResult(card, "Spade");
 System.out.println(result);
}

Dengan menggunakan fungsi-fungsi tersebut, kita dapat membuat kartu Straight dan Royal Straight dengan lebih mudah.