Re: Help with Deck of cards assignment and getting it to deal...
On 02/08/14 02:16, Scott Dunning wrote:
Hello, I have an assignment for my summer class. FYI, I'm super new to
programming in general and this is my first time with java and it's a
summer class so it's going super fast (please be nice!) lol.
<snip>
Seeing as this thread just won't die I thought I'd offer the following.
It's just a bit of fun
I particularly like the shuffle method.
Go ahead, do your worst :-)
package cards.allinone;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Stack;
enum Suit {
HERTS, CLUBS, DIAMONDS, SPADES
};
enum Rank {
ACE, KING, QUEEN, JACK, TEN, NINE, EIGHT, SEVEN, SIX, FIVE, FOUR,
THREE, TWO
};
class Card {
private final Rank rank;
private final Suit suit;
public Card(Rank rank, Suit suit) {
this.rank = rank;
this.suit = suit;
}
public Rank getRank() {
return rank;
}
public Suit getSuit() {
return suit;
}
}
class Deck {
private Stack<Card> cards = new Stack<>();
public Deck() {
for(Suit suit: Suit.values()){
for(Rank rank: Rank.values()){
cards.push(new Card(rank, suit));
}
}
}
public void printDeck(){
for(Card card: cards){
System.out.println(card.getRank() + " of " + card.getSuit());
}
}
public Boolean moreCards(){
return !cards.empty();
}
public Card nextCard(){
return cards.pop();
}
public void shuffle(){
Collections.shuffle(cards);
}
}
class Hand {
private List<Card> cards = null;
public Hand() {
cards = new ArrayList<>();
}
public void addCard(Card card){
cards.add(card);
}
public Card getCard(int index){
return cards.get(index);
}
public void printHand(){
for(int i = 0; i < cards.size(); i++){
System.out.println("card " + i + ":" + cards.get(i).getRank() + " of
" + cards.get(i).getSuit());
}
}
}
public class CardGame {
private Deck deck = null;
private Map<Integer, Hand> players = null;
public CardGame() {
deck = new Deck();
deck.shuffle();
players = new HashMap<>();
}
public void deal(int hands, int cardsPerHand){
for(int i = 0; i < hands; i++){
players.put(i, new Hand());
}
for(int i = 0; i < cardsPerHand; i++){
for(int j = 0; j < hands; j++){
players.get(j).addCard(deck.nextCard());
}
}
}
public void printHands(){
for(Integer key: players.keySet()){
System.out.println("Player " + key + " hand:");
players.get(key).printHand();
System.out.println("----------");
}
}
public void play(){
//?
}
public static void main(String[] args) {
CardGame game = new CardGame();
game.deal(4, 7);
game.printHands();
}
}
--
lipska the kat - treacherous feline.
Proudly nominated for IPOTY 2014 - LIGAF
GNU/Linux user #560883 - linuxcounter.net