Как добавить еще одну колоду в карточную игру в соответствии с пользовательским вводом

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 [] [] deck = new int [2] [52]; (пример для двух колод)
  • 0
    int[] deck = new int[52*2]; и for( int i = 0; i < deck.length; i++) deck[i] = i%52;
Показать ещё 2 комментария
Теги:
arrays

2 ответа

0

Чтобы сделать приложение динамичным (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

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 колод прямо с самого начала.
  • 0
    @Hevar это на самом деле позволяет пользователю выбрать номер. который вы можете затем выбрать для создания N (выбранное количество) колод. Кроме того, не мы должны быть на правильном пути, а вы сами;), так как это ваша домашняя работа

Ещё вопросы

Сообщество Overcoder
Наверх
Меню