JAVA KART KARIŞTIRMA PROGRAMI
BU uygulamanın yeni başlayanlar için faydalı olabileceğini düşünüyorum.Uygulamada class oluşturma class tan nesne türetme fonksiyon oluşturma ve çağırma gibi olayları görüp anlayabilirsiniz.Ekleyebildiğim kadar açıklama satırlarıyla sizlere göstermeye çalıştım.İyi Çalışmalar…
Card CLASS’I
public class Card { private String face;// Değişkenleri tanımladık private String suit; //2 parametreli constructor kullanımı public Card(String cardFace,String cardSuit) { face=cardFace; suit=cardSuit; } public String toString() { return face+"of"+suit;//bu değeri geri döndürüyoruz. } }
DeckOfCards CLASSI
import java.util.Random;//Rastgele sayı üretmek için bu kütüphaneyi projemize dahil ediyoruz. public class DeckOfCards { private Card[] deck;//Kartlarımızı tutacak dizimizi belirledik. private int currentCard; private static final int NUMBER_OF_CARDS=52;//kart sayısını sabit belirledik. //rastgele sayı üretelim private static final Random randomNumbers=new Random(); //desteyi dolduralım.constructor ile public DeckOfCards() { String[] faces = { "Ace", "Deuce", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine", "Ten", "Jack", "Queen", "King" }; String[] suits = { "Hearts", "Diamonds", "Clubs", "Spades" }; deck=new Card[NUMBER_OF_CARDS]; currentCard=0; for(int count=0;count<deck.length;count++) deck[count]=new Card(faces[count%13],suits[count/13]); } //karıştırılaım public void shuffle() { //karıştırdıktan sonra yine ilk kartı seçeceğiz currentCard=0; //karıştırma işlemi 0-51 arasında for(int first=0;first<deck.length;first++) { int second=randomNumbers.nextInt(NUMBER_OF_CARDS); //kartları yer değiştirelim. Card temp=deck[first]; deck[first]=deck[second]; } } //kartları dağıtalım public Card dealCard() { if(currentCard<deck.length) return deck[currentCard++]; else return null; } }
DeckOfCardsTest CLASS’I
public class DeckOfCardsTest { public static void main(String[] args)//Ana fonksiyon tanımlaması { DeckOfCards myDeckOfCard=new DeckOfCards();//nesne yarattık. myDeckOfCard.shuffle();//karıştırma fonksiyonu çağırıldı. //bütün kartları ekrana yazdıralım. for (int i=1;i<=52;i++) { System.out.printf("%-19s",myDeckOfCard.dealCard()); if(i%4==0) System.out.println(); } } }