Java 如何根据用户的输入为纸牌游戏添加另一副牌
您好,我是java新手,我一直在尝试创建一个程序,使您能够从洗牌或有序的牌组中抽牌 现在我想让用户选择甲板的数量。我尝试过不同的方法,但都没能成功 自从我用瑞典语写了这个程序以来,我已经添加了一些注释作为翻译:Java 如何根据用户的输入为纸牌游戏添加另一副牌,java,arrays,Java,Arrays,您好,我是java新手,我一直在尝试创建一个程序,使您能够从洗牌或有序的牌组中抽牌 现在我想让用户选择甲板的数量。我尝试过不同的方法,但都没能成功 自从我用瑞典语写了这个程序以来,我已经添加了一些注释作为翻译: import java.util.Scanner; public class KortSpel { public static void main(String[] args) { Boolean fortsatt = true;
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);
}
}
}
}
我不知道我是否理解正确,但您可能希望在程序运行期间从命令行读取数据 如果是,则可以使用System.console
Console c = System.console();
if (c == null) {
System.err.println("No console.");
System.exit(1);
}
String deck = c.readLine("Enter additional deck: ");
您可以在此处找到更多信息:使您的应用程序成为动态的1-To-n组。您必须在编码之前进行应用程序设计。我建议您使用节点样式。比如:
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
}
}
这是你的节点,它也有点复杂
在执行此操作之前,请查看手动链接列表您可以使用int[][]deck=new int[2][52];双层sint[]deck=new int[52*2]的示例;对于int i=0;i<甲板长度;i++deck[i]=i%52;若我不是2,而是添加了一个包含数字的变量,那个会怎么样呢。因此,用户可以选择x数量的deckstried建议和没有工作。无论如何,谢谢你:你的方法是正确的,但是我想让用户选择X个甲板数量,而不是添加1个甲板。例如,他可以从开始直接选择6组。@Hevar这实际上让用户选择一个数字。然后您可以选择创建N个选定的数字组。也不应该是我们走对了路,而是你自己;因为这是你的家庭作业