• Tidak ada hasil yang ditemukan

Permainan Remi Sederhana

N/A
N/A
Protected

Academic year: 2021

Membagikan "Permainan Remi Sederhana"

Copied!
6
0
0

Teks penuh

(1)

Permainan Remi Sederhana

Permainan Remi ini dimainkan oleh n orang dan masing-masing menerima sebanyak m kartu. Nilai n dan m ini diinputkan oleh user.

Pada permainan remi terdapat : • KartuAcuan

• Masing-masing pemain diawal permainan mempunyai m kartu.

• Tumpukan kartu adalah kartu yang tersisa setelah kartu dibagikan ke pemain dan sebuah kartu yang digunakan untuk kartuAcuan

Setiap pemain harus mengeluarkan kartu yang sejenis dengan kartuAcuan, jika tidak mempunyai kartu yang sejenis maka pemain harus mengambil dari tumpukan kartu, sampai menemukan kartu yang sejenis. Selanjutnya ditentukan siapakah pemenangnya. Class-class yang kita gunakan untuk menyelesaikan permasalahan ini adalah: • Class Kartu : digunakan untuk membuat objek kartu

Terdapat variabel bagianMuka dan jenis, contoh sebuah kartu ”8 Waru” maka kartu tersebut mempunyai bagianMuka = “8” dan jenis = “Waru”.

• Class TumpukanKartu : untuk membuat objek tumpukan kartu. Terdapat variabel kartu2 dengan tipe List.

• Class Pemain : untuk membuat objek Pemain, berisi variabel nama dan kartu-kartu yang dimiliki oleh pemain (dengan tipe TumpukanKartu).

• Class PermainanRemi : untuk membuat objek pada saat permainan remi dilakukan. Variabel apa saja yang harus ada ?

o List pemain2 : untuk menyimpan data pemain. o int jumPemain : untuk menyimpan jumlah pemain.

o int jumKartu : untuk menyimpan jumlah kartu yang diterima pemain pada saat awal permainan.

o TumpukanKartu kk : untuk sisa kartu setelah kartu dibagikan ke pemain-pemain dan sebuah kartu Acuan.

o Kartu kartuAcuan : untuk memyimpan kartuAcuan

o TumpukanKartu win : kartu-kartu yang dikeluarkan oleh pemain, disimpan dalam variabel win, selanjutnya ditentukan siapakah pemenangnya.

Fungsi penting yang terdapat pada Class Kartu:

• public boolean equals(Object o) : untuk membandingkan antara Kartu 1 dengan Kartu 2 berdasarkan jenisnya. Jika kartu 1 dan kartu 2 mempunyai jenis yang berbeda maka fungsi akan mengembalikan nilai true, jika tidak sejenis maka mengembalikan nilai false.

Contoh :

kartu1 = 8 Hati, kartu2 = king Hati, kartu3 = ace Waru. boolean test = kartu1.equals(kartu2);  hasil test = true ; test = kartu1.equals(kartu3);  hasil test = false ;

(2)

• public boolean equals2(Object o) : untuk membandingkan antara kartu1 dan kartu2 berdasarkan bagianMuka dan jenisnya. Sehingga kartu1 dan kartu2 dikatakan sesuai jika mempunyai bagianMuka dan jenis yang sama.

Contoh :

kartu1 = 8 Hati, kartu2 = 8 Hati, kartu3 = ace Waru. boolean test = kartu1.equals2(kartu2);  hasil test = true ; test = kartu1.equals2(kartu3);  hasil test = false ;

• private int derajat(String str) : untuk memberikan derajat pada suatu kartu

berdasarkan bagianMuka kartu, misal kartu ace mempunyai derajat yang lebih tinggi dibandingkan kartu king.

• public int compareTo(Object o) : Karena Class Kartu mengimplementasikan interface Comparable, maka pada Class Kartu harus mengimplementasikan fungsi

compareTo(Object). Fungsi ini digunakan untuk melakukan pengurutan berdasarkan bagianMuka dari sebuah kartu. Sehingga pada fungsi compareTo() ini akan

memanggil fungsi derajat() untuk mengkonversi bagianMuka menjadi sebuah nilai integer.

Contoh :

Sebuah kartu 8 Hati diberi nilai 8, sedangkan jenisnya diabaikan. (Kartu ini mempunyai bagianMuka = 8 dengan jenis=”Hati”). Sedangkan untuk jack, queen, king dan ace diberi nilai 11, 12, 13 dan 14.

Kartu sebelum diurutkan 2 Waru 4 Waru 2 Hati 3 Waru 3 Hati 4 Hati Jumlah Kartu : 6 Sesudah diurutkan 2 Waru 2 Hati 3 Waru 3 Hati 4 Waru 4 Hati Jumlah Kartu : 6

Dari contoh diatas kartu diurutkan berdasarkan bagianMuka kartu sehingga kartu yang mempunyai bagianMuka 2 , ditampilkan terlebih dahulu dibandingkan kartu dengan bagianMuka 3 dst.

Fungsi penting yang terdapat pada Class TumpukanKartu: • public void acakKartu() : untuk mengacak tumpukan kartu. Fungsi penting yang terdapat pada Class PermainanRemi:

(3)

• public PermainanRemi(int jumPemain, int jumKartu) : konstruktor ini menerima jumlah inputan jumlah pemain dan kartu yang diterima oleh masing-masing pemain. • public Kartu ambilSatuKartu(TumpukanKartu tk) : mengambil satu kartu dari

tumpukan kartu dari yang belakang.

• public Kartu ambilSatuKartu(TumpukanKartu tk, Kartu k) : mengambil satu kartu dari tumpukan kartu

• public void bagiKartu() : fungsi untuk membagikan kartu ke masing-masing pemain. • public int getPemenang() : untuk menentukan pemenang

• public int mainRemi() : fungsi untuk main remi. public int mainRemi(){

//bersihkan variable win.

//lakukan iterasi pada pemain-pemain.

ListIterator it = pemain2.listIterator() ; while(it.hasNext()){

//pemain mengeluarkan sebuah kartu yang sesuai dengan kartuAcuan

//jika kartu tersebut terdapat pada kartu yang dimiliki oleh pemain, maka tambahkan pada win.

//jika pemain tidak mempunyai kartu yang sesuai dengan kartuAcuan maka ambil pada tumpukan kartu sampai menemukan kartu yang sesuai dengan kartuAcuan, selanjutnya kartu tersebut tambahkan pada win.

//tentukan pemenang panggil fungsi pemenang(). }

import com.Kartu;

import com.TumpukanKartu; import java.util.Collections; import java.util.Vector;

public class TestKu {

public static void main(String[] args) {

String jenis[] = {"Hati","Waru"} ; String urutan[] = {"2","3","4"} ; Vector v = new Vector() ; for(int i=0; i<jenis.length ;i++) for(int j=0; j<urutan.length ;j++){

Kartu k = new Kartu(urutan[j],jenis[i]); v.add(k) ;

}

TumpukanKartu kk = new TumpukanKartu(v) ; System.out.println("\nSebelum diacak") ; System.out.println(kk.toString()) ; Collections.shuffle(kk.getTumpukanKartu()) ; System.out.println("\nSesudah diacak") ; System.out.println(kk.toString()) ; Collections.sort(kk.getTumpukanKartu());

(4)

System.out.println("\nSesudah diurutkan") ; System.out.println(kk.toString()) ;

Kartu k1 = new Kartu("ace","Waru") ; Kartu k2 = new Kartu("ace","Hati"); Kartu k3 = new Kartu("ace","Keriting");

int index = kk.getTumpukanKartu().indexOf(k1) ;

System.out.println("Kartu : " + k1.toString() + " pada index ke - :" + index) ; System.out.println("Kartu : " + kk.getTumpukanKartu().get(index)) ; index = kk.getTumpukanKartu().lastIndexOf(k2);

System.out.println("Kartu : " + k2.toString() + " pada index ke - :" + index) ; System.out.println("Kartu : " + kk.getTumpukanKartu().get(index)) ; index = kk.getTumpukanKartu().lastIndexOf(k3);

System.out.println("Kartu : " + k3.toString() + " pada index ke - :" + index) ;

} }

Penjelasan Program :

Program diatas bertujuan untuk membuat tumpukan kartu dengan 3 jenis bagianMuka (”2”,”3”,”4”) dan 2 jenis kartu ("Hati","Waru"), sehingga tumpukan kartu mempunyai 6 kartu yaitu 2 Hati, 3 Hati, 4 Hati, 2 Waru, 3 Waru dan 4 Waru.

Selanjutnya pada tumpukan kartu tersebut lakukan pengacakan, lalu lakukanlah

pengurutan. Pengurutan pada tumpukan kartu berdasarkan bagianMuka. Output sebagai berikut : Sebelum diacak 2 Hati 3 Hati 4 Hati 2 Waru 3 Waru 4 Waru Jumlah Kartu : 6 Sesudah diacak 2 Waru 4 Waru 2 Hati 3 Waru 3 Hati 4 Hati Jumlah Kartu : 6 Sesudah diurutkan 2 Waru

(5)

2 Hati 3 Waru 3 Hati 4 Waru 4 Hati Jumlah Kartu : 6

Kartu : ace Waru pada index ke - :0 Kartu : 2 Waru

Kartu : ace Hati pada index ke - :5 Kartu : 4 Hati

Kartu : ace Keriting pada index ke - :-1 BUILD SUCCESSFUL (total time: 0 seconds)

Fungsi indexOf() ini akan mengembalikan indeks dari Objek yang pertama kali sesuai dengan Objek yang diinginkan. Objek yang sesuai ini berdasarkan kriteria yang

didefinisikan pada fungsi equals(Object). Sehingga pada class Kartu definisikan fungsi equals(Object) berdasarkan jenis dari kartu.

Contoh :

Kartu k1 = new Kartu("ace","Waru") ;

int index = kk.getTumpukanKartu().indexOf(k1) ;

Contoh program diatas mengembalikan indek ke – 0 karena pada indeks tersebut indeks yang pertama kali sesuai dengan kartu yang dengan jenis “Waru”.

Fungsi lastIndexOf() ini akan mengembalikan indeks dari Objek yang terakhir kali sesuai dengan Objek yang diinginkan. Objek yang sesuai ini berdasarkan kriteria yang

didefinisikan pada fungsi equals(Object). Contoh :

Kartu k2 = new Kartu("ace","Hati");

int index = kk.getTumpukanKartu().lastIndexOf(k2) ;

Contoh program diatas mengembalikan indek ke – 5 karena pada indeks tersebut indeks yang terakhir kali sesuai dengan kartu yang dengan jenis “Hati”.

(6)

Gambar

Gambar UML

Referensi

Dokumen terkait

Dengan mencermati beberapa pendapat para ahli, maka dapat disimpulkan bahwa permainan kartu remi adalah suatu kegiatan yang menyenangkan dengan menggunakan kartu remi

Material yang digunakan dalam perancangan area ini adalah lantai keramik dan marmer, dinding wallpaper dan kaca dengan view menghadap keluar ruangan, dan plafon

Kemampuan tanaman untuk dapat tumbuh dan berkembang diatur oleh ZPT yang mana dapat di peroleh dari tanaman itu sendiri (endogen) maupun dengan pemberian dari

Penelitian ini dilakukan untuk mengetahui (1) Macam-macam perawatan tubuh calon pengantin dengan ramuan tradisional Madura di rumah SPA Keraton Sumenep (2) khasiat

Dari segi produk pengganti, All New Camry memang mendapat kendala yang cukup tinggi, terutama dari mobil-mobil city car yang cenderung jauh lebih hemat dalam mengkonsumsi bahan

Pada aliran sistem informasi (ASI) sistem pengarsipan digital pada Sub Bagian Organisasi, Kepegawaian dan Penyusunan Peraturan IAIN Batusangkar ini penulis

Komunikasi yang terjadi antara brand dan konsumen ialah komunikasi tak terlihat dan satu arah, dimana konsumen hanya menerima presentasi maupun promosi dari

Ceramah Penyuluhan Hukum Kegiatan ceramah penyuluhan hukum dalam tahun 2005 ini diprogramkan sebanyak 35 kali kegiatan dan telah selesai dilaksanakan sesuai dengan yang