Привет, я новичок в 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);
}
}
}
}
Чтобы сделать приложение динамичным (1-я-колоды). Перед кодированием вы должны работать над дизайном приложения. Я бы предложил вам стиль 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
}
}
Это ваш УЗЕЛ и его маленький комплекс.
Перед тем, как пройти ручную ссылку- READ READ
Я не знаю, правильно ли я понимаю, но, вероятно, вы хотите читать данные из командной строки во время запуска программы.
Если да, то вы можете использовать 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
int[] deck = new int[52*2];
иfor( int i = 0; i < deck.length; i++) deck[i] = i%52;