2015-02-06 9 views
-2

그래서 우리는 클래스에서 ArrayBag 클래스를 수행해야했습니다. 그렇지 않으면 인터넷을 통해. 어쨌든 우리 프로젝트는 그것을 블랙 잭 게임으로 바꾸는 것입니다. 그러나 나는 이것을 어떻게하는지 모른다. 카드 클래스를 갑판 클래스로 만들고 블랙 잭 클래스를 만들고 싶습니다. 그러나 다시 한번 내가 어떻게 배열 가방 클래스에 구현할 수 있을지 모르겠다. 누군가 도와주세요! 내가 지금까지 가지고있는 것에 대한 코드를 추가하십시오.미리 정의 된 데크 클래스에서 블랙 잭 게임을 만드는 방법

배열 가방

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() ; 
} 
} 

블랙 잭 클래스

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 
+2

11 번째 및 12 번째 사례 문장 주위에 '휴식'을 두는 것을 잊지 마십시오. – Makoto

+1

질문은보다 구체적이고 덜 숙고해야합니다. – CodeMonkey

+0

미안하지만 그런 뜻은 아닙니다. 배열 가방은 내 덱이 될 것이므로 어떻게 Card 클래스를 ArrayBag 클래스에 퍼팅합니까? 나는 옳은 방향으로 추진하거나 내가 할 수있는 것에 대한 아이디어를 찾고 있었다. 나를 위해 이것을하지 마십시오. – user3450126

답변