首页
学习
活动
专区
圈层
工具
发布

Java 21卡
EN

Stack Overflow用户
提问于 2016-03-24 16:37:56
回答 1查看 462关注 0票数 0

我有一项任务,我有困难。重点是让程序打印出带有blackjack值的卡片。它不需要实际将卡片加在一起,而只需要显示卡片的名称和值。

我的麻烦就在显示后面的号码,王牌,国王,皇后和杰克。我的代码是

代码语言:javascript
复制
import static java.lang.System.*;
public class Card
{
public static final String FACES[] = {"ZERO","ACE","TWO","THREE","FOUR",
        "FIVE","SIX","SEVEN","EIGHT","NINE","TEN","JACK","QUEEN","KING"};

//instance variables
private String suit;
private int face;

//constructors
public Card( String s, int f)
{
    suit = s;
    face = f;
}

// modifiers
public void setFace( int f)
{
    face = f;
}

public void setSuit( String s)
{
    suit = s;
}

//accessors
public String getSuit()
{
    return suit;
}

public int getFace()
{
    return face;
}

//toString
public String toString()
{
    return FACES[face] + " of " + suit;
}
 }
代码语言:javascript
复制
import static java.lang.System.*;
import java.awt.Color;

public class CardRunner
{
public static void main( String args[] )
{
    Card one = new Card("SPADES", 9);
    out.println(one.getSuit());
    out.println(one.getFace());

    Card two = new Card("DIAMONDS", 1);
    out.println(two);
    two.setFace(3);
    out.println(two);

    Card three = new Card("CLUBS", 4);
    out.println(three);

    Card four = new Card("SPADES", 1);
    out.println(four);

    Card five = new Card("HEARTS", 13);
    out.println(five);

    Card six = new Card("HEARTS", 11);
    out.println(six);

    Card seven = new Card("CLUBS", 12);
    out.println(seven);     
}
}

我在想,我会添加一个方法,调用超级(s,f),因为这是我们正在学习的,作业的重点是使用对超级的调用。我只是很难让它显示数字。

我的产出是:

代码语言:javascript
复制
SPADES
9
ACE of DIAMONDS
THREE of DIAMONDS
FOUR of CLUBS
ACE of SPADES
KING of HEARTS
JACK of HEARTS
QUEEN of CLUBS

我需要的输出是:

代码语言:javascript
复制
SPADES 
9 
ACE of DIAMONDS 
THREE of DIAMONDS 
FOUR of CLUBS 
ACE of SPADES 11 
KING of HEARTS 10 
JACK of HEARTS 10
QUEEN of CLUBS 10
EN

回答 1

Stack Overflow用户

发布于 2016-03-24 16:49:10

只需为卡片的实际值存储另一个变量即可。

注意:我将实现getValue()而不是getFace()来返回卡片的“适当”值,而不是数组的索引。

代码语言:javascript
复制
//instance variables
private String suit;
private int face;
private int value;

//constructors
public Card( String s, int f)
{
    suit = s;
    face = f;
    value = f;              // This handles 2..10
    if (f > 10) value = 10; // Face values are all 10
    if (f == 1) value = 11; // Ace. Remove if 1 and 11 should be different
}

public String toString()
{
    String s = FACES[face] + " of " + suit;
    if (face > 10 || face == 1) {
        s += " " + value;
    }
    return s;
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36205429

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档