【问题标题】:Deck of cards AP CS project扑克牌 AP CS 项目
【发布时间】:2016-02-28 17:52:17
【问题描述】:

我是这个网站的新手,一般是java。我需要为我的 AP 计算机科学课完成一副纸牌程序。它非常接近完成,但它仍然有一些编译错误,我不知道如何修复它们。我添加了带有箭头的 cmets 来表示给我错误的行。

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

} // 结束 Deck 类

卡类:

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

【问题讨论】:

  • “帮我解决这个问题”类型的问题不受欢迎。请浏览tourhelp centerhow to ask a good question 部分,了解本网站的工作原理并帮助您改进当前和未来的问题,从而获得更好的答案。换句话说,请在提出问题时付出更多的努力,就像你希望别人在回答问题时付出的努力一样。
  • 问题需要具体说明所面临的错误。

标签: java computer-science


【解决方案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 = ""; 中的合法修饰符

未来:使用合适的 IDE,如 EclipseIntelliJ 将帮助您解决这些类型的错误(错别字、类型错误等)

【讨论】:

  • 好的,我已经进行了必要的更改以及更多更改,现在可以正常工作了。谢谢!
【解决方案2】:

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

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

【讨论】:

    猜你喜欢
    • 2020-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-19
    • 2011-07-09
    • 1970-01-01
    相关资源
    最近更新 更多