Computer Science Homework Solutions
Problem
#132636

JAVA Object Based Questions

See attached file for full problem description.

OBJECT BASED JAVA WITH   BLUEJ.

PROJECT:  DECK OF CARDS

Attached file(s):
Attachments
Homework #06.doc  View File
DeckOfCards01.bmp  View File
DeckOfCards02.bmp  View File

Attachment Content Summary (Note: view attachment at the above link before purchasing. Actual attachment content may vary slightly from that shown below.)

Homework #06.doc
CLASS: FiveCardStud

/*

Add the required import statements.

*/

/**

* Deals out a game of 5-card-stud.

*

* @author :

* @version:

*/

public class FiveCardStud

{

/*

Add the required fields (a deck, an ArrayList of players)

*/

/**

* Constructor for objects of class FiveCardStud

*/

/*

Write a constructor for the FiveCardStud class. The constructor

accepts a single integer parameter for the number of players.

The number of players should be from 2 to 6 inclusive.

Make sure to take care of values outside of this range.

For numbers less than 2, set the number to 2 and print

an appropriate message. For numbers greater than 6

set the number to 6 and print an appropriate message.

For each player add a hand to the list of players.

Print out the name of the game.

Don't forget to initialize the fields.

*/



/**

* Deal the cards.

*/

/*

Write a method called "deal".

The method should print out a message to let the user know

that the cards have been dealt.

It should remove any old cards from all players hands

from previous games (Hint: there is a fold method in the

hand class.)

It should then shuffle the deck and add 5 cards to each player's
hand.

*/





/**

* Prints out all player's hands.

*/

/*

Write a method called "showCards".

The method should print out each players hand as shown

in the sample output.

*/

}

END FIVECARDSTUD CLASS

CLASS: Deck

import java.util.ArrayList;

import java.util.Iterator;

/**

* Represents a deck of 52 playing cards.

*

* @author Derek Green, Mar. 26, 04

* @revised by Allyson Anderson, Nov. 1, 06

*/

public class Deck

{

private final String[] suits = {"Spades ", "Hearts ", "Clubs ",
"Diamonds"};

private final String[] faces = {"Ace", "2", "3", "4", "5", "6", "7",
"8", "9", "10", "Jack", "Queen", "King"};

private Card[] card;

private int topCard;



/**

* Construct a deck of cards

*/

public Deck()

{

card = new Card[52];

topCard = -1;//deal method will increment topCard

for(int i = 0; i < 52; i++)

{

card[i] = new Card(suits[i/13], faces[i%13]);// brand new
deck with all cards in order

}

}



/**

* deal() returns the next card or null if the deck is empty.

*/

public Card deal()

{

topCard++;// set topCard to the next card

if(topCard < 52)

{

return card[topCard];

}

else

{

return null;

}

}



/**

* shuffle() randomly generates a sequence of cards for the card
array

*/

public void shuffle()

{

topCard = -1;// reset the top card

int nextNumber;

boolean[] available = new boolean[52];// used to select random
#'s between 0 and 51 without replacement

for(int i = 0; i < 52; i++)

{

available[i] = true;//all #'s between 0 and 51 are available

}



for(int i = 0; i < 52; i++)

{

nextNumber = (int)(Math.random()*52);// select a # from 0 to
51

while(!available[nextNumber])//while nextNumber is not
available (i.e. this number has already been used)

{

nextNumber = (int)(Math.random()*52);//try a different
number until you find an unused one

}

available[nextNumber] = false;// this number is taken

card[i] = new Card(suits[nextNumber/13],
faces[nextNumber%13]);

}

}



/**

* Print out the entire deck for testing purposes.

*/

public void testDeck()

{

for(int i = 0; i < 13; i++)

{

System.out.println(card[i].getCard() + "\t" +
card[i+13].getCard() + "\t" + card[i+26].getCard() + "\t" +
card[i+39].getCard());

}

}



/**

* Print out a subset of the deck to test the deal method.

*/

public void testDeal(int cardNumber)

{

ArrayList hand = new ArrayList();// hold a hand of
cards.

int index = 0;

while(index < cardNumber)

{

hand.add(deal());

index++;

}



Iterator it = hand.iterator();

while(it.hasNext())

{

Card thisCard = it.next();

System.out.println(thisCard.getCard());

}

}

}

END DECK CLASS

CLASS: Hand

import java.util.ArrayList;

import java.util.Iterator;

/**

* Represents a single player's hand in a card game.

*

* @author Derek Green, Mar. 27, 04

* @revised by Allyson Anderson, Nov.1, 06

*/

public class Hand

{

private ArrayList hand;// contains this players cards

/**

* Constructor for objects of class Hand

*/

public Hand()

{

hand = new ArrayList();

}



/**

* Add a single card to the player's hand.

*/

public void addCard(Card card)

{

hand.add(card);

}



/**

* Clear the player's hand.

*/

public void fold()

{

hand.clear();

}



/**

* Show the player's cards.

*/

public void displayHand()

{

Iterator it = hand.iterator();

while(it.hasNext())

{

System.out.println((it.next()).getCard());

}

}

}

END HAND CLASS

CLASS: Card

/**

* Represents a single playing card.

*

* @author Derek Green, Mar. 26, 04

* @revised by Allyson Anderson, Nov. 1, 06

*/

public class Card

{

private String suit;

private String face;

/**

* Constructor for objects of class Card.

*/

public Card(String suit, String face)

{

this.suit = suit;

this.face = face;

}

/**

* Returns the suit of the card

*/

public String getSuit()

{

return suit;

}



/**

* Returns the face of the card

*/

public String getFace()

{

return face;

}



/**

* Returns the suit and face of the card as a single String

*/

public String getCard()

{

return face + "\t" + suit;

}

}

END CARD CLASS

*** For the response: Please place appropriate code where supposed to
go inside of a word document. Thank-you so much for your help.

Solution Summary

This solution demonstrates a simple way to implement a poker game in Java.  The focus of this solution is on object oriented design and the use of iterators in the implementation.

Solution
What is this?
By OTA - Overall OTA Rating
Mike Noel, MS - 4.9/5
Purchase Cost Now
$2.19 CAD (was ~$27.93)
Included in Download
  • Plain text response
  • Attached file(s):
    • 5stud.doc
$2.19 Instant Download
Add to Cart
Why you can trust BrainMass.com
  • Your Information is Secure
  • Best Online Academic Help Service
  • Students find real academic Success
Related Solutions
  • C++ array - Consider the C++ array int arr[] = (-15, 5, 35, -19, -12, 17, -4); int arrSize = sizeof(arr)/sizeof(int); (a) Declare the list object intList that holds the integers from the array arr. ...
  • Writing a Java Program - I need assistance in writing a java program that allows the user to select a shape from a JComboBox and that then draws that shape 20 times with random locations and dimensions in method paint(). The ...
  • Flow control using n! and e^x for iteration - ((The following is exactly how the problem is presented)) import java.util.Scanner; import java.text.DecimalFormat; /** Iteratively computes e^x for a given value x, outputing values at iter ...
  • The GUI offers all kinds of functionality in the graphical sense. - The GUI offers all kinds of functionality in the graphical sense. Why are Java and Javas GUI are so popular? What are some applications that use a Java GUI?
  • Java Whiteboard - Modify the WhiteBoard.java source code given in Chapter 13 to make it work as an applet. Create an HTML file that uses it.
Browse