Java 区分我桌子上的行

Java 区分我桌子上的行,java,arrays,Java,Arrays,首先,我先解释一下我拥有什么,然后再解释一下我想做什么 目前,我的程序使用数组创建一副卡片(我不想要枚举)。然后,它将这些卡随机洗牌,并打印出一张7 X 7的表 我想做的是能够询问用户他们的卡在哪一行,然后翻转表格,使他们选择的行现在成为一列 如何区分这些行(如2d数组中的行),以便询问用户他们的卡在哪一行 和 如何翻转此表,使行成为列 以下是我目前的代码: public class Deck { private Card[] deck; private int currentC

首先,我先解释一下我拥有什么,然后再解释一下我想做什么

目前,我的程序使用数组创建一副卡片(我不想要枚举)。然后,它将这些卡随机洗牌,并打印出一张7 X 7的表

我想做的是能够询问用户他们的卡在哪一行,然后翻转表格,使他们选择的行现在成为一列

如何区分这些行(如2d数组中的行),以便询问用户他们的卡在哪一行 和 如何翻转此表,使行成为列

以下是我目前的代码:

public class Deck {
    private Card[] deck;
    private int currentCard;
    String[][] multi = new String[7][7];

    public Deck() {
        String[] Faces = { "2", "3", "4", "5", "6", "7", "8", "9", "T", "J", "Q", "K", "A" };
        String[] Suits = { "♠", "♣", "♦", "♥" };

        deck = new Card[52];
        currentCard = 0;

        for (int suit = 0; suit < 4; suit++) {
            for (int face = 0; face < 13; face++) {

                deck[(face + (suit * 13))] = new Card(Suits[suit], Faces[face]);
            }
        }
    }

    public void shuffle() {
        currentCard = 0;

        SecureRandom randomNumber = new SecureRandom();

        for (int first = 0; first < deck.length; first++) {
            int second = randomNumber.nextInt(52);

            Card temp = deck[first];

            deck[first] = deck[second];
            deck[second] = temp;
        }
    }

    @Override
    public String toString() {
        String s = "";
        int k;
        k = 0;
        for (int i = 0; i < 7; i++) {
            for (int j = 1; j <= 7; j++)
                System.out.print(deck[k++] + "    ");
            System.out.println("");
        }
        return (s);
    }

    public static void main(String[] args) {
        Deck theDeck = new Deck();
        theDeck.shuffle();
        theDeck.toString();

    }
}
公共类甲板{
私人卡[]套;
个人信用卡;
字符串[][]多=新字符串[7][7];
公共甲板(){
字符串[]面={“2”、“3”、“4”、“5”、“6”、“7”、“8”、“9”、“T”、“J”、“Q”、“K”、“A”};
字符串[]={”♠", "♣", "♦", "♥" };
卡片组=新卡片[52];
当前卡=0;
对于(int suit=0;suit<4;suit++){
用于(int face=0;face<13;face++){
牌组[(脸+(西装*13))]=新卡(西装[西装],脸[脸]);
}
}
}
公开无效洗牌(){
当前卡=0;
SecureRandom randomNumber=新的SecureRandom();
for(int first=0;first
  • 基本上,您可以继续将牌组中的牌存储在给定的数组中。要从数组位置映射到行和列,您可以使用例如
    /
    (查找行)和
    %
    (查找行中的列)操作符
  • 关于翻转:考虑一种方法,比如实现的
    toString()
    。让新方法有一个
    布尔转置
    作为参数。根据值(真/假),您可以以一种或另一种(转置)方式打印卡片-保持模型不变
      • 基本上,您可以继续将牌组中的牌存储在给定的数组中。要从数组位置映射到行和列,您可以使用例如
        /
        (查找行)和
        %
        (查找行中的列)操作符
      • 关于翻转:考虑一种方法,比如实现的
        toString()
        。让新方法有一个
        布尔转置
        作为参数。根据值(真/假),您可以以一种或另一种(转置)方式打印卡片-保持模型不变

      …问题是?您尝试执行的操作称为“转置”。可能已经有一些东西可以完成this@StefanFreitag问题是“我想做的是能够询问用户他们的卡在哪一行,然后翻转表格,使他们选择的行现在成为一列。“@j.seashell我认为你是对的。我会调查并试用它,我会让你知道它是否有效……问题是?你正在尝试的操作被称为“转置”。可能已经有一些东西可以做了this@StefanFreitag问题是“我想做的是能够询问用户他们的卡在哪一行,然后翻转表格,使他们选择的那一行现在成为一列。”@j.seashell我认为你是对的。我会去调查并尝试一下,我会让你知道它是否有效。