2016-04-03 59 views
1

我沒有輸出,也不知道該從哪裏出發。一副撲克牌使用方法和多個類別

設計並實現一個名爲Card的類,它代表一張標準撲克牌。每張卡片都有西裝和麪值。然後,創建一個驅動程序類,將Card類的52個對象存儲到數組中。包括洗牌的方法,交易一張卡片並報告卡片中留下的卡片數量。洗牌方法應該假設一個完整的套牌。你的主要方法應該從洗牌平臺處理每張牌,打印每張牌(套裝和麪值)。

這是我到目前爲止有:

import java.util.Random; 
public class card { 
public static void main(String[] args) {} 

    public class deck { 


     int[] deck = new int[52]; 
     String[] suits = {"Spades", "Hearts", "Diamonds", "Clubs"}; 
     String[] ranks = {"Ace", "2", "3", "4", "5", "6", "7", "8", "9", "10", "Jack", "Queen", "King"}; 

     public void create() {//initialize cards 
      for (int i = 0; i < deck.length; i++) deck[i] = i; 
     } 


     public void shuffle() {//deck shuffle 
      for (int i = 0; i < deck.length; i++) { 

       int index = (int) (Math.random() * deck.length); 
       int temp = deck[i]; 
       deck[i] = deck[index]; 
       deck[index] = temp; 
      } 



       //display all the cards! 
       for (int i = 0; i < deck.length; i++) 

       { 
        String suit = suits[deck[i]/13]; 
        String rank = ranks[deck[i] % 13]; 
        System.out.println("Card number " + deck[i] + ": " + rank + " of " + suit); 


       } 


      } 
     } 

     } 
+1

不相關,但使用一致的縮進和刪除僞造的空白使代碼更容易閱讀和推理。 –

回答

3

在Java中,方法的main()是你的代碼將開始運行。你有沒有在你的主要方法現在:

public static void main(String[] args) {} 

爲了得到它做一些事情,改變它的東西是這樣的:

public static void main(String[] args) { 
deck myDeck = new deck(); 
myDeck.create(); 
myDeck.shuffle(); 
} 

作爲一個說明,它是在Java中的名字好習慣你的班級有大寫字母。

+0

我已經這樣做了,它告訴我我的新套牌不能從靜態上下文中引用。我錯過了什麼大聲笑更新我讓甲板靜態似乎工作! – whatamii

+0

如果我的解決方案幫助您解決問題,如果您將其標記爲解決方案,那將是非常好的。 – nhouser9

0

在這裏,我試着寫一些代碼對你來說,它不是完整的,但提供了一個框架,你繼續,你所要做的就是實現自己的洗牌方法,並添加更多的變量行列:

public class CardDriver { 
    public static void main(String[] args) { 

     Deck myDeck = new Deck(); 
     myDeck.shuffle(); 
     System.out.println("Dealt cards are:"); 
     myDeck.dealAllCards(); 
    } 
} 

class Card { 
    String suite, faceValue; 
    Card(String suite, String faceValue) { 
     this.suite = suite; 
     this.faceValue = faceValue; 
    } 
    void printCard() { 
     System.out.println(faceValue + " " + suite); 
    } 
} 

class Deck { 
    String[] suits = { "Spades", "Hearts", "Diamonds", "Clubs" }; 
    String[] ranks = { "6", "7" }; 
    int count = ranks.length * suits.length; 
    Card deck[] = new Card[count]; 

    Deck() { // fills out the deck 
     int index = 0; // this is for simple deck filling 
     for (int i = 0; i < ranks.length; i++) { // for ranks 
      for (int j = 0; j < suits.length; j++) { // for suits 
       deck[index] = new Card(suits[j], ranks[i]); 
       index++; 
      } 
     } 
    }; 

    void shuffle() { // shuffles the deck 
     // your code here 
    } 

    Card dealCard() { // gives card from deck 
     if (returnLeft() > 0) { 
      count--; 
      return deck[count]; 
     } else return null; 
    } 

    int returnLeft() { 
     return count; 
    } 

    void dealAllCards() { 
     int counter = count; 
     for (int i = 0; i < counter; i++) { 
      Card someCard = dealCard(); 
      someCard.printCard(); 
     } 
    } 
}