Tugas - Card Game

Kali ini, digunakan library Random java untuk membuat sebuah card game

Pemain bermain dg computer dengan menebak kartu masing-masing

Card Game dilakukan sebanyak 3 ronde, dan di setiap ronde, setiap pemain mendapatkan sebuah kartu yang acak. Kedua pemain harus menebak kartu pemain lain. Ada sistem point tersendiri untuk menilai pemain yang benar menebak jenis kartu, nilai kartu, atau keduanya.

1. Class Card
import java.util.Random;

public class Card{
    int suitVal;
    int valueVal;
    String suit, value;
    
    Random rand = new Random();
    
    public Card() {
        suitVal = rand.nextInt(4);
        valueVal = rand.nextInt(13);
    }
    
    public Card(int suit, int value) {
        this.suitVal = suit;
        this.valueVal = value;
    }
    
    public void setSuit(String s) {
        suit = s;
    }
    
    public String getSuit() {
        return suit;
    }
    public void setValue(String v) {
        value = v;
    }
    
    public String getValue() {
        return value;
    }
}
2. Class Play untuk eksekusi
import java.util.Scanner;
import java.util.Random;

public class Play {
    
    public static void main(String[] args) {
        String[] suits = {"Spade", "Club", "Heart", "Diamond"};
        String[] values = {"Ace","2","3","4","5","6","7","8","9","10","Jack","Queen","King"};
        
        System.out.println("=+= Welcome to Card Game =+=");
        System.out.println("Kamu akan bermain tebak kartu dengan komputer");
        System.out.println("Permainan ini dilakukan sebanyak 3 ronde");
        System.out.println("Kamu dan Komputer akan diberikan 1 kartu tiap rondenya, dan kalian akan menebak kartu satu sama lain");
        System.out.println("Jika benar menebak jenis kartu, akan diberikan 1 poin");
        System.out.println("Jika benar menebak angka kartu, akan diberikan 3 poin");
        System.out.println("Jika benar menebak keduanya, akan diberikan 5 poin");
        System.out.println("Pemain yang paling banyak mengumpulkan poin menjadi pemenang");
        System.out.println("Selamat Bermain!");
        
        Scanner scan = new Scanner(System.in);
        Random rand = new Random();
        
        int playerPoints = 0, cpuPoints = 0;
        
        for(int i=1; i<=3; i++) {
            System.out.println("Ronde " + i);
            
            int gsuit = -1;
            int gval = -1;
            
            Card player = new Card();
            Card cpu = new Card();
            
            player.setSuit(suits[player.suitVal]);
            cpu.setSuit(suits[cpu.suitVal]);
            player.setValue(values[player.valueVal]);
            cpu.setValue(values[cpu.valueVal]);
            
            System.out.println("Kartumu adalah " + player.getSuit() + " " +player.getValue());
            
            while(true) {
                System.out.println("*Tebak jenis kartu musuh (Spade/Club/Heart/Diamond): ");
                String jenis = scan.next();
                jenis = jenis.toLowerCase();
                boolean exit = false;
                switch(jenis) {
                    case "spade":
                        gsuit = 1;
                        exit = true;
                        break;
                    case "club":
                        gsuit = 2;
                        exit = true;
                        break;
                    case "heart":
                        gsuit = 3;
                        exit = true;
                        break;
                    case "diamond":
                        gsuit = 4;
                        exit = true;
                        break;
                    default:
                        System.out.println("!Instruksi tidak diketahui!");
                }
                if(exit == true)
                    break;
            }
            
            while(true) {
                System.out.println("*Tebak nilai kartu musuh (Ace/2/3/4/5/6/7/8/9/10/Jack/Queen/King): ");
                String nilai = scan.next();
                nilai = nilai.toLowerCase();
                boolean exit = false;
                switch(nilai) {
                    case "ace":
                        gval = 1;
                        exit = true;
                        break;
                    case "2":
                        gval = 2;
                        exit = true;
                        break;
                    case "3":
                        gval = 3;
                        exit = true;
                        break;
                    case "4":
                        gval = 4;
                        exit = true;
                        break;
                    case "5":
                        gval = 5;
                        exit = true;
                        break;
                    case "6":
                        gval = 6;
                        exit = true;
                        break;
                    case "7":
                        gval = 7;
                        exit = true;
                        break;
                    case "8":
                        gval = 8;
                        exit = true;
                        break;
                    case "9":
                        gval = 9;
                        exit = true;
                        break;
                    case "10":
                        gval = 10;
                        exit = true;
                        break;
                    case "jack":
                        gval = 11;
                        exit = true;
                        break;
                    case "queen":
                        gval = 12;
                        exit = true;
                        break;
                    case "king":
                        gval = 13;
                        exit = true;
                        break;
                    default:
                        System.out.println("!Instruksi tidak diketahui!");
                }
                if(exit == true)
                    break;
            }
            
            System.out.println("-Kartu Musuh: " + cpu.getSuit() + " " + cpu.getValue());
            System.out.println("-Tebakanmu: " + suits[gsuit-1] + " " + values[gval-1]);
            //System.out.println(cpu.suitVal +" "+ cpu.valueVal);
            if(gsuit-1 == cpu.suitVal && gval == cpu.valueVal) {
                System.out.println("Kamu benar menebak keduanya, +5 Points");
                playerPoints += 5;
            }
            else if(gsuit-1 == cpu.suitVal) {
                System.out.println("Kamu hanya benar menebak jenis kartu, +1 Points");
                playerPoints += 1;
            }
            else if(gval-1 == cpu.valueVal) {
                System.out.println("Kamu hanya benar menebak nilai kartu, +3 Points");
                playerPoints += 3;
            }
            else {
                System.out.println("Kamu salah menebak keduanya, Tidak mendapat point");
            }
            
            int gsuitcpu = rand.nextInt(4);
            int gvalcpu = rand.nextInt(13);
            System.out.println("-Kartumu: " + player.getSuit() + " " + player.getValue());
            System.out.println("-Tebakan Musuh: " + suits[gsuitcpu] + " " + values[gvalcpu]);
            if(gsuitcpu == player.suitVal && gvalcpu == player.valueVal) {
                System.out.println("Musuh benar menebak keduanya, +5 Points");
                cpuPoints += 5;
            }
            else if(gsuitcpu == player.suitVal) {
                System.out.println("Musuh hanya benar menebak jenis kartu, +1 Points");
                cpuPoints += 1;
            }
            else if(gvalcpu == player.valueVal) {
                System.out.println("Musuh hanya benar menebak nilai kartu, +3 Points");
                cpuPoints += 3;
            }
            else {
                System.out.println("Musuh salah menebak keduanya, Tidak mendapat point");
            }
            
            System.out.println("Poinmu: " + playerPoints);
            System.out.println("Poin musuh: " + cpuPoints);
        }
        
        
        if(playerPoints > cpuPoints) {
            System.out.println("Kamu Menang! o/");
        }
        else if (playerPoints < cpuPoints) {
            System.out.println("Kamu Kalah :<");
        }
        else {
            System.out.println("Permainan Seri .-.");
        }
    }
}

3. Screenshot

Comments