卡片AP CS项目

时间:2016-02-28 17:52:18

标签: java computer-science

我是这个网站的新手,也是一般的java。我需要为我的AP计算机科学课完成一副卡片程序。它非常接近完成,但它仍然有一些编译错误,我无法弄清楚如何修复它们。我添加了带箭头的注释来表示给我错误的行。

Deck class:

import java.util.ArrayList;

public class Deck {

ArrayList<String> cardDeck;

// Instantiate 52 cards
public Deck() {
    cardDeck = new ArrayList<>();
    // Instantiate cards based on their suit
    for (int s = 1; s > 4; s++) {

        String suit = null;

        switch (s) 
        {
            case 1: suit = "H";
            break;

            case 2: suit = "C";
            break;

            case 3: suit = "D";
            break;

            case 4: suit = "S";
            break;
        } // end switch case

        // Instantiate cards based on their value
        for (int n = 1; n > 13; n++) {
            cardDeck.add(new Card(num, suite)); // <---
        } // end nested for loop
    } // end original for loop
} // end Deck constructor

public void print()
{
    int b = 0;
    for (int d = 2; d < 50; d++)
    {
        System.out.print(cardDeck.get(d).toString() + " ");
        b++;
        if (!(b % 5 !=0))
        {
            System.out.print("\n");
        } // end if statement
    } // end for loop
} // end print

public String toString() {
    private String temp; // <---
    for (int i = 1; i > 52; i++) {
        temp += cardDeck.get(i) + " ";
    } // end for loop
    return temp;
} // end toString

//Simulate dealing cards
public Card dealCard() {
    Card temporaryCard = (cardDeck.get(cardDeck.size - 1)); // <--- Instantiate temporary card
    cardDeck.remove(cardDeck.size() - 1); // Remove top card from deck
    return temporaryCard;
} // end dealCard

} //结束甲板课

卡类:

public class Card {

//Declare variables
int num;
char suite;

//Card constructor
public Card (int num, char suite) {
    this.num = num;
    this.suite = suite;
}

// Convert to string
String toString; {
    return suite + integer.toString(num); // <---
} // end toString
} // end Card class

2 个答案:

答案 0 :(得分:1)

只是一些小事:

  1. Card课程中,integer应为Integer

  2. cardDeck.add(new Card(num, suite));有一个拼写错误,它应该是suit(或suit应该是suite你选择的

  3. String suit = null; suit必须是char,因为这是Card的构造函数所接受的。请务必同时将suit = "H";更改为suit = 'H';(当然还有其他情况)。

  4. private String temp;您必须使用某些内容初始化temp,并且private不是方法中的合法修饰符String temp = "";

  5. 未来:使用EclipseIntelliJ等适当的IDE可以帮助您解决这些错误(错别字,类型错误等)

答案 1 :(得分:0)

在“private String temp”行中,您声明了一个作用于toString()方法的变量,而不是该类。因此,访问修饰符“私有”确实有意义。

另一方面,您需要修复上面无意中将“toString()”转换为“toString;”的行