2014-12-23 25 views
1

嗨,我是新来的java,我一直在试图创建一个程序,使您能够从洗牌或订购的牌组中绘制牌。如何根据用户的输入添加另一套牌到纸牌游戏

现在我想让用户选择数量的套牌。我尝试过不同的方式,但无法让它工作。

程序(我已经添加了注释作为翻译,因为我在瑞典写的):

import java.util.Scanner; 

public class KortSpel { 
    public static void main(String[] args) { 
     Boolean fortsatt = true;   
     while(fortsatt){  

     Scanner scan = new Scanner(System.in); 

     int[] deck = new int[52]; 

     String[] suits = {"Spader", "Hjärter", "Ruter", "Köver"}; //the suits 
     String[] ranks = {"Ess", "2", "3", "4", "5", "6", "7", "8", "9", "10", "Knäckt", "Drottning", "Kung"}; //the rank of the cards 

     for(int i = 0; i < deck.length; i++) deck[i] = i; 



     System.out.print("Skriv dra för att dra korten annars avsluta."); //ask the user if he want to keep playing or not 
     String svar2 = scan.nextLine(); 

     if (svar2.equalsIgnoreCase("Avsluta")){ 
      fortsatt = false; 
      System.out.println("Du har nu avslutat."); //tells the user he has exit 
     } 

     else { 


      System.out.print("Vill du bland korten? (ja/nej) "); //ask the user if he want to shuffle the cards Y/N 
      String svar = scan.nextLine(); 

      if (svar.equalsIgnoreCase("ja")) {     // if shuffled 

       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 < 52; i++) { 
        String suit = suits[deck[i]/13]; 
        String rank = ranks[deck[i] % 13]; 
        System.out.println("Kort nummer " + deck[i] + ": " + suit + " " + rank); 
       } 
      } 

      else {           //if not suffled 

       for(int i = 0; i < deck.length; i++) deck[i] = i; 

       for(int i = 0; i < 52; i++) { 
        String suit = suits[deck[i]/13]; 
       String rank = ranks[deck[i] % 13]; 
       System.out.println("Kort nummer " + deck[i] + ": " + suit + " " + rank); 
     } 
     } 

    } 
}  
+0

您可以使用int [] [] =甲板新INT [2] [52]; (例如两个套牌) – Mailkov

+0

'int [] deck = new int [52 * 2];'和'for(int i = 0; i talex

+0

如果我而不是2添加了一个包含数字的变量,将会如何。所以用户可以选择x数量的套牌 – Hevar

回答

0

我不知道如果我理解正确的,但可能要读取命令数据在程序运行期间执行。

如果是,那么你可以使用System.console()。

Console c = System.console(); 
    if (c == null) { 
     System.err.println("No console."); 
     System.exit(1); 
    } 

    String deck = c.readLine("Enter additional deck: "); 

,你可以在这里找到更多信息:http://docs.oracle.com/javase/tutorial/essential/io/cl.html

+0

你的方式是正确的,但不是增加1个套牌,我想让用户选择X数量的套牌。例如,他可以从开始直接选择6套甲板。 – Hevar

+0

@Hevar这实际上让我们的用户选择一个数字。然后您可以选择创建N(所选号码)套牌。另外,它不应该是我们正确的方式,而是你自己;)因为这是你的功课 – Joeblade

0

为了使应用程序的动态(1对N甲板)。编码之前,你必须从事应用程序设计。我会建议你Node的风格。如:

class Deck{ 

    Deck nextDeck; 
    Deck periousDeck; 

    String[] card1=new String[13]; 
    String[] card2=new String[13]; 
    String[] card3=new String[13]; 
    String[] card4=new String[13]; 

    Deck(){ 
     //initialization of cards 
    } 
} 

这是您的NODE及其小复杂了。

在做之前要经过人工链表READ