我正在制作纸牌游戏。 *游戏区域的数组元素中有28个值。游乐区采用纸牌形式。 *银行阵列的元素有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");
答案 0 :(得分:0)
假设每张&#34;卡&#34;占用一行,那你的问题是你想要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();
}
}
如果这不能解决您的问题,您可能需要查看glossary of solitaire terms以更好地描述您尝试做的事情。