Java ArrayList 甲板类 [英] Java ArrayList Deck Class

查看:20
本文介绍了Java ArrayList 甲板类的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这个程序应该使用 ArrayList 来创建一副纸牌.用户输入要抽多少张牌并打印这些牌,然后打印一副牌中剩余的其余牌.我打印了用户的卡片,但我不知道如何打印卡片组中剩余的卡片.任何帮助将不胜感激.

This program is supposed to use ArrayList to create a deck of cards. The user enters how many cards to draw and those cards are printed, then the rest of the cards that are remaining in the deck are printed. I got the user's cards to print but I cant figure out how to get the remaining cards in the deck to print. Any help would be appreciated.

public class Card 
{
    private int type, value;
    private String[] cardType = {"Clubs", "Spades", "Diamonds", "Hearts"};
    private String[] cardValue = {"Ace", "King", "Queen", "Jack", "10",
                                   "9", "8", "7", "6", "5", "4", "3", "2"};

    public Card(int types, int values)
    {
        type = types; 
        value = values;
    }

    public String toString()
    {
        String finalCard = cardValue[value] + " of " + cardType[type];

        return finalCard;
    }

}

import java.util.Random;
import java.util.ArrayList;

public class Deck 
{
    private ArrayList<Card> cards;

    public Deck()
    {
        cards = new ArrayList<Card>();

        for(int a =0; a<=3; a++)
        {
            for(int b =0; b<=12;b++)
            {
                cards.add(new Card(a,b));
            }
        }  
    }

    public Card drawRandomCard()
    {
        Random generator = new Random();
        int index = generator.nextInt(cards.size());
        return cards.remove(index);
    }

    public String toString()
    {
        String result = "Cards remaining in deck: " + cards;

        return result;

    }    
}


import java.util.Scanner;

public class CardProgram 
{
    public static void main(String[] args)
    {
        Scanner scan = new Scanner(System.in);
        Card C;
        Deck deck = new Deck();

        System.out.println("Enter number of cards to be dealt: ");
        int numberCards = scan.nextInt();

        System.out.println("Cards drawn: ");
        for(int i=0; i<numberCards; i++)
        {
            C = deck.drawRandomCard();
            System.out.println(C.toString());
        }

        //C = deck.toString();
        //System.out.println(cards.toString());
       // System.out.println(C.toString());


    }

}

推荐答案

我认为这应该对你有用

System.out.println(deck.toString());
//System.out.println(deck); // Note : this will also work

虽然我认为创建一个新方法 remainingCard 并返回 cards ArrayList 是有意义的,而不是用剩余的卡片覆盖 toString.

Though I think creating a new method remainingCard and returning the cards ArrayList makes sense rather than Overriding toString with remaining cards.

这篇关于Java ArrayList 甲板类的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆