2013-12-09 46 views
0

我正在用java创建混洗程序。我如何退出。我是否通过System.exit(0); ?在java中混洗

+0

请解决您的格式,因此会更容易阅读 –

+0

看起来像你后'而(真)'缺少大括号。 –

+0

您的洗牌和绘图方法都不会将'String []'作为输入。在甲板在主要方法之外初始化之前,您也无法打电话给他们。 – turbo

回答

0

shuffledraw你的方法声明没有参数,但是当你打电话给他们,你是传递deck

你也应该调用移动到main功能

2

声明中方法属于/构造但您可以在任何方法之外调用这些方法:

shuffle(deck);  
draw(deck); 

将它们移到方法或构造函数中。

另外,这些方法没有参数;或者将该参数添加到方法中或从调用中删除它们。

此外,这条线是一个无限循环,需要固定的:

while (true); 

你将需要删除分号,并根据您的预期while循环体,将相应括号。

0

代码不会编译。让它编译。但我不认为它正在做你想做的事,因为其他人建议你需要修复无限循环。

这里是可编译的代码来处理...应该让你在这里快一点。

正如其他人已经提到的那样,在顶部取下洗牌(甲板)和画(甲板)线。你也需要一个静态主体。也括号问题。以此为起点。它运行。

import java.util.*; 


public class Deck 
{ 

static String [] number = 
{ 
    "Ace", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine", "Ten", "Jack", "Queen", "King" 
} 
; 

static String [] suit = 
{ 
    "Clubs", "Hearts", "Diamonds", "Spades" 
} 
; 

static String [] deck = new String[52]; 

int cardsUsed = 0; 



public static void main (String [] args) 
{ 


    Deck d = new Deck(); 

    for (int i = 0; 
    i< 
    number.length; 
    i++) 
    { 

     for (int j = 0; 
     j< 
     suit.length; 
     j++) 
     { 

      deck[13*j+i] = number[i] + " of " + suit[j]; 



     } 


    } 


    while (true) 
    { 

     System.out.println ("shuffle or draw"); 

     Scanner s = new Scanner(System.in); 

     System.out.println ("What would you like to do?"); 

     String command = s.next(); 

     if (command.equals("shuffle")) 
     { 

      d.shuffle(); 


     } 
     else if (command.equals("draw")) 
     { 

      d.draw(); 


     } 

     s.close(); 

    } 



} 


public void shuffle() 
{ 

    int k; 

    Random shuffle = new Random(); 

    for (k = deck.length-1; 
    k > 
    = 0; 
    k--) 
    { 

     int index = Math.abs((shuffle.nextInt())%52); 

     String temp = deck[k]; 

     deck[k] = deck[index]; 

     deck[index] = temp; 


    } 

    int l; 

    for (l = 0; 
    l< 
    deck.length; 
    l++) 
    { 

     System.out.println (deck[l]); 



    } 


} 


public void draw() 
{ 

    System.out.print (deck[cardsUsed]); 

    if (cardsUsed < 
    deck.length) 
    { 

     System.out.print (deck[cardsUsed]); 


    } 
    else 
    { 

     System.out.println ("No cards are left in the deck."); 

     cardsUsed++; 



    } 


} 

}