2011-04-30 2 views
0

덱 클래스를 작성 했으므로 이제 섞어서 몇 가지 손을 인쇄하여 작동 방법을 확인하십시오. 그러나, 그것은 아무것도 섞지 않는 것처럼 보이지만 오히려 정확히 같은 갑판을 제공합니다."덱"클래스를 섞으려고 시도하는 것이 바뀌지 않는 것 같습니다.

public void makeHands() { 
    Deck deck = new Deck(); 
    Deck shuffled = shuffleDeck (deck); 
    printDeck (subdeck (shuffled, 0, 4)); 
    printDeck (subdeck (shuffled, 5, 9)); 
    printDeck (subdeck (shuffled, 10, 14)); 
    printDeck (subdeck (shuffled, 15, 19)); 
} 

public static int randomInt (int length, int i) { 
    double x = Math.random() * length; 
    int g = (int) x; 
    return g; 
} 

public Deck shuffleDeck (Deck deck) { 
    for (int i=0; i<deck.cards.length; i++) { 
     int g = randomInt (deck.cards.length, i); 
     swapCards (i, g); 
    } 
    return deck; 
} 
} 


public void swapCards (int first, int swap) { 
     Card temp = cards[first]; 
     cards[first] = cards[swap]; 
     cards[swap] = temp; 
} 
+4

숙제? ..... – Prescott

답변

2

코드가 불완전 해 보입니다.

갑판 개체를 swapCards 메서드에 전달해야하는 것처럼 보입니다.

swapCards()는 카드 배열을 나타냅니다. 이 배열이 선언 된 곳이 명확하지 않습니다. 대신에이 메소드에 데크를 전달하고 deck.cards [first]와 deck.cards [swap]을 스왑해야합니다.

관련 문제