战争卡片游戏开始崩溃

时间:2013-12-09 03:30:23

标签: java

我正在尝试创建一个玩纸牌游戏战的程序(我还没有参加战争部分)。现在我已经制作了一个Japplet类和一个Deck Class,可以找出我的程序无法正常工作的原因。我没有任何红线。现在我的Deck类创建了套牌,我正在尝试创建一个名为“card”的字符串,以便将其转移到WarUI类以查看它是否正常工作,但是当我启动applet时它会崩溃。

编辑:现在这样做了,有些卡会在点击52张牌之前重复。我将如何制作它以使卡片不再重复。我一直在尝试搜索,似乎数组列表可以工作,但我不明白如何正确使用

public class FullDeck {

    String card = "";
    public FullDeck()
    {
        int[]deck = new int[52];
        String [] suits = {"Heart" + "Diamond" + "Spade" + "Club"};
        String [] numbers = { "2" + "3" + "4" + "5" + "6" + "7" + "8" + "9" + "10" + "Jack" + "Queen" + "King" + "Ace" };

        for (int i = 0; i < deck.length; i++)deck[i]=i;
            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;
            }

            for( int i = 0; i < deck.length; i++) {
                String suit = suits[deck[i] / 13];
                String num = numbers[deck[i] % 13];
                card = "Card number " + deck[i] + ": " + num + " of " + suit;
            }
        }
    }
}

import java.applet.Applet;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;

public class WarUI extends JApplet implements ActionListener {

    FullDeck deck = new FullDeck();
    JTextArea displayLabel = new JTextArea("Enter a letter to guess the phrase."); //sets label to display message


     JTextField inputBox = new JTextField(40); //sets text field
     JButton runButton = new JButton("Run"); //button that starts program
     Container con = getContentPane(); //gets container

     public void init() {
         con.setLayout(new FlowLayout());//sets flowlayout
         con.add(new JLabel());      //jlabel container
         con.add(inputBox);  //input box container
         con.add(runButton);  //run button container
         con.add(displayLabel); //display label container

         runButton.addActionListener(this);//looks to see if run is clicked
         inputBox.addActionListener(this);//looks to see if input box is used
     }

     public void actionPerformed(ActionEvent e) {
          displayLabel.setText("You Drew: " + deck.card); //displays hiddenPhrase
     }
}

1 个答案:

答案 0 :(得分:1)

您可以检查所有信息是否正常的一种方法是在程序运行时将其打印到控制台。例如,在显示卡片之前,您可以执行以下操作:

System.out.println(//information that you want to check);

这是一种非常简单且特别有效的调试形式,因此您可以确定代码是否正常工作

我看到的另一个问题是:

String [] suits = {"Heart" + "Diamond" + "Spade" + "Club"};
String [] numbers = { "2" + "3" + "4" + "5" + "6" + "7" + "8" + "9" + "10" + "Jack" + "Queen" + "King" + "Ace" };

这些需要,而不是

String [] suits = {"Heart" , "Diamond" , "Spade" , "Club"};
String [] numbers = { "2" , "3" , "4" , "5" , "6" , "7" , "8" , "9" , "10" , "Jack", "Queen" , "King" , "Ace" };

+之类的字符串方式使用"Heart" + "Diamond"就是所谓的连接或将两个字符串连接在一起。

希望有所帮助