Java 纸牌洗牌和上弦一个星号作为背面牌

Java 纸牌洗牌和上弦一个星号作为背面牌,java,bluej,Java,Bluej,我正在制作一个纸牌游戏*其中,游戏区域的数组元素中有28个值。游戏区采用纸牌格式。*对于bank,数组元素中有24个值。我循环它,但它不工作 如何将阵列上的元素转换为倒直角三角形(纸牌格式)?用洗牌。 *以及如何将上面的字符串变成代表卡片背面的星号 public static void main(String[] args) { int row, space, column; //declaring 52 cards for solitaire String[] cards = { "A@

我正在制作一个纸牌游戏*其中,游戏区域的数组元素中有28个值。游戏区采用纸牌格式。*对于bank,数组元素中有24个值。我循环它,但它不工作

如何将阵列上的元素转换为倒直角三角形(纸牌格式)?用洗牌。 *以及如何将上面的字符串变成代表卡片背面的星号

public static void main(String[] args) {
  int row, space, column;
 //declaring 52 cards for solitaire
String[] cards = { "A@", "A#", "A$", "A&",  "2@", "3@", "4@", "5@", "6@",
                   "7@","8@", "9@", "10@", "K@", "Q@", "J@", "2#", "3#", "4#",
                   "5#", "6#", "7#", "8#","9#", "10#", "K#", "J#",  "2$" , 
                   "3$", "4$" , "5$", "6$" , "7$", "8$" , "9$", "10$" , "K$", "Q$", "J$",
                    "2&" , "3&", "4&" , "5&", "6&" , "7&", "8&" , "9&", "10&" , "K&", "Q&",
                   "J&", "Q#" };

List<String> list = Arrays.asList(cards);

Collections.shuffle(list);

//looping for solitaire format
for(row=1;row<=28;row++)
{
     for(String alpha : list){
    for(space=28;space>=row;space--)
    {
        System.out.print(" ");
    }

    for(column=1;column<=row;column++)
    {

        System.out.print("  " +alpha);

    }

    System.out.print("\n");
publicstaticvoidmain(字符串[]args){
int行、空格、列;
//宣布52张纸牌
字符串[]卡片={“A@”、“A#”、“A$”、“A&”、“2@”、“3@”、“4@”、“5@”、“6@”,
"7,","8","9","10","K","Q","J","2","3",,
“5”、“6”、“7”、“8”、“9”、“10”、“K”、“J”、“2美元”,
“3美元”、“4美元”、“5美元”、“6美元”、“7美元”、“8美元”、“9美元”、“10美元”、“K美元”、“Q美元”、“J美元”,
“2&”“3&”“4&”“5&”“6&”“7&”“8&”“9&”“10&”“K&”“Q&”,
“J&”,“Q#”};
列表=数组.asList(卡片);
集合。洗牌(列表);
//纸牌格式的循环
对于(行=1;行=行;空格--)
{
系统输出打印(“”);
}
对于(column=1;column假设每个“卡片”占用一行,那么您的问题是您需要7行,每行的列数减少(7+6+5+4+3+2+1=28张卡片),而不是28行

public static void main(String... args) {
    String[] cards =
        { "A@", "A#", "A$", "A&", "2@", "3@", "4@", "5@", "6@", "7@", "8@", "9@",
            "10@", "K@", "Q@", "J@", "2#", "3#", "4#", "5#", "6#", "7#", "8#",
            "9#", "10#", "K#", "J#", "2$", "3$", "4$", "5$", "6$", "7$", "8$",
            "9$", "10$", "K$", "Q$", "J$", "2&", "3&", "4&", "5&", "6&", "7&",
            "8&", "9&", "10&", "K&", "Q&", "J&", "Q#" };

    List<String> list = Arrays.asList(cards);

    Collections.shuffle(list);
    final int columns = 7;
    final int rows = 7;
    int card = 0;

    // loop over rows
    for (int i=0; i<rows; i++) {
        // Fill empty columns in this row
        for (int j=0; j<i; j++) {
            System.out.print("\t");
        }
        // Add #columns - row# cards to this row
        for (int j=i; j<columns; j++) {
            System.out.print(list.get(card++) + "\t");
        }
        // advance to next row
        System.out.println();
    }
}
publicstaticvoidmain(字符串…参数){
字符串[]卡片=
{"A","A","A","A","A","A","2","3","4",,
"10","K","Q","J","2","3","4","5","6","7","8",,
“9元”、“10元”、“K元”、“J元”、“2元”、“3元”、“4元”、“5元”、“6元”、“7元”、“8元”,
“9$”、“10$”、“K$”、“Q$”、“J$”、“2&”、“3&”、“4&”、“5&”、“6&”、“7&”,
“8&”、“9&”、“10&”、“K&”、“Q&”、“J&”、“Q#”};
列表=数组.asList(卡片);
集合。洗牌(列表);
最终整数列=7;
最终整数行=7;
int卡=0;
//绕行循环

对于(int i=0;我说“它不工作”最好清楚地解释你想要发生的事情,以及它与实际发生的事情有何不同。也许可以使用调试器逐行检查你的代码,看看它从何处开始偏离期望的行为。是的。我的意思是我的代码不像纸牌格式那样形成倒置的直角三角形。但洗牌是有效的。我无法将洗牌应用到循环中。@ChristianLumugdan Hi Christian,欢迎使用StackOverflow!在这里,我们希望对您遇到的确切问题进行彻底描述。说“它不起作用”无法帮助我们确定问题的真实性质,因此很难提供具体的解决方案!请使用您收到的错误以及预期的具体输出/结果更新您的问题。什么是“纸牌格式的倒直角三角形”是这样的,但是如何将上面的字符串变成星号。星号将代表卡片的背面。