所以在課堂上,我們不得不做的ArrayBag類,這肯定你們都知道。如果不是全部通過互聯網。無論如何,我們的項目是把它變成一個黑色的傑克遊戲。然而,我不知道如何做到這一點。我想製作一個卡組,然後是黑色傑克班。然而,我再次不知道如何將它實現到Array包類中。有人幫忙!我添加了迄今爲止我所擁有的代碼。如何製作黑色傑克遊戲預定的甲板類
陣列袋
package bag;
//I will will keep T because its the norm, but i really don't want to.
public class ArrayBag <T> implements BagInterface<T>{
private final T [] bag; // our generic array
private static final int DefualtItemCapacity = 52; // our default capacity of items...Make DEFAULT all caps because all the i's made it look ugly
private int numberOfItems ;
public ArrayBag (int itemCapacity){
numberOfItems = 0 ; // set numberOfItems to empty 0
@SuppressWarnings("unchecked") // java i know what im doing, #Suppressed !
T[] tempBag = (T[]) new Object [itemCapacity];
bag= tempBag;
}// end constructor
public ArrayBag() {
this(DefualtItemCapacity);
} // if nothing, call DefualtItemCapacity, dont have to check for null if we overload the method
// thank you eclipse, for creating the methods from the interface :)
@Override
public int getCurrentSize() {
// TODO Auto-generated method stub
return numberOfItems;
}// end current size
@Override
public boolean isFull() {
// TODO Auto-generated method stub
return numberOfItems==bag.length; // return numberOfItems as full
}// end full
@Override
public boolean isEmpty() {
// TODO Auto-generated method stub
return numberOfItems==0;// return numberOfItems as empty
}// end empty
@Override
public boolean add(T newItem) {
boolean result = true ;
if(isFull()){ // bag is full , return false
result = false ;
} else { // bag is not full add new item
bag[numberOfItems]= newItem ;
numberOfItems++;
}
return result;
}// end bool add
@Override
public T remove() {
T temp = bag[numberOfItems-1]; // bag numberOfItems is now one less
bag[numberOfItems-1]=null ; // then we have to set that spot to null
numberOfItems--; // then make sure numberOfItems is one less aswell
return temp;
}// end T remove
@Override
public boolean remove(T anItem) {
boolean result = true ;
for (int i = 0; i < numberOfItems; i++){
if(bag[numberOfItems]== anItem) {
bag[numberOfItems] = null ;
/* items[numItems-1] = null;*/ // this might shift it left
numberOfItems--;
result = true;
}else {
result = false ; // item not found
}
}
return result;
}// end bool remove
@Override
public void clear() {
while(!isEmpty()){ // while the bag is not empty we can remove stuff.
remove();
}
}// end clear
@Override
public T grab() {
int i;
while (numberOfItems != 0){ // while numberOfItems is not empty
i = (int)(Math.random() * numberOfItems) + 1; // i is a random value
return bag[i]; // return random item from bag
}
return null ; // is empty , return null
} // end grab
@Override
public int getFrequencyOf(T anItem) { // count how many items are the same
int count=0 ; // count how many are the same
for (int i = 0; i < numberOfItems; i++){
if(bag[i]==anItem){ // if current item = an item add to the count value
count++;
}
}
return count;
}// end Frequency
@Override
public boolean contains(T anItem) {
while(anItem != null){
for (int i = 0; i < numberOfItems; i++){
if (anItem.equals(bag[i])){ //bag contains the specified item, use .equals because java is dumb and == gives an error.
return true;
}
}
}return false; // bag doesnt contain item
}// end contains
@Override
public T[] toArray() { // creates and returns an array containing all of the items
T[] result = (T[]) new Object [numberOfItems];
for(int i =0; i < numberOfItems; i++){
result[i]=bag[i];
}
return result;
} // end toArray
} // end class
CardClass
package bag;
public class Card {
private String cardSuit ;
private int card ;
Card(String suit, int card){
this.cardSuit = cardSuit ;
this.card = card ;
}
public String toString(){ // Mr.Englend, i overloaded the toString :'(
String CardNumber = null;
switch (this.card){
case 1:
CardNumber = "Ace" ;
break;
case 2:
CardNumber = "Two" ;
break;
case 3:
CardNumber = "Three" ;
break;
case 4:
CardNumber = "Four" ;
break;
case 5:
CardNumber = "Five" ;
break;
case 6:
CardNumber = "Six" ;
break;
case 7:
CardNumber = "Seven" ;
break;
case 8:
CardNumber = "Eight" ;
break;
case 9:
CardNumber = "Nine" ;
break;
case 10 :
CardNumber = "Ten" ;
break ;
case 11:
CardNumber = "Jack" ;
case 12:
CardNumber = "Queen" ;
case 13:
CardNumber = "King" ;
break;
case 14:
CardNumber = "Ace" ;
break;
default:
CardNumber = "ERROR" ;
break;
}
return CardNumber + "Of " +cardSuit.toString() ;
}
}
的BlackJack類
package bag;
import java.util.Scanner;
public class BlackJack {
private static ArrayBag Deck = new ArrayBag();
private Card[] mycard ;
//private static Card Card = new Card();
public static void main(String[] args) {
boolean play = true ;
boolean winner = false ; // bool win
int money = 100 ; // amount of money
int bet = 0 ; // amount user bets
Scanner input = new Scanner(System.in);
Deck.add(3);
System.out.println(Deck.isEmpty());
System.out.println(Deck.contains(3));
System.out.println(Deck.toArray());
}// end main
void shuffle(){
for(int i = 1; i <= 52 ; i++){
System.out.println(Deck.add(i));
}
}
void drawCard(){
while(!Deck.isEmpty()){
} // end while not empty
} // draw card
}// end class
圍繞你的第11和第12個病例陳述,你忘記在那裏放置一個'break'。 – Makoto 2015-02-06 18:19:15
問題需要更具體,更少「做我的作業」 – CodeMonkey 2015-02-06 19:03:40
對不起,我並不是這個意思。我知道如何將Card類放入ArrayBag類,因爲Array包將成爲我的套牌。我只是在尋找一個正確的方向,或者我可以做什麼的想法。不要爲我做這件事。 – user3450126 2015-02-06 19:36:16