我正在开发一款基本上有大量硬币的小型游戏,您必须从一堆硬币中取出一些硬币,然后程序以以下格式打印出产生的硬币:

Pile 1: ****
Pile 2: *****
Pile 3: **


我有一个存储所有这些值的数组列表,如下所示:

List<Integer> coins = new ArrayList<>();
[4,5,2]


但我不知道如何获取它以正确打印*。

如何编写此代码以为元素中的每个值打印出*。 IE 4 *的元素值是否为4?

这是我目前的方法:

static void printGameState(){
    for(int i = 0; i <= coins.size()-1; i++){
        int k = i+1;
        System.out.print("Pile " + k + ": ");
        for(int j = 0; j <= coins.indexOf(i); j++){
            System.out.print("*");
        }
    }
}

最佳答案

代替使用这种条件:

j <= coins.indexOf(i);

使用以下条件:

j < coins.get(i);

尝试一下:

for(int i = 0; i <= coins.size()-1; i++) {
    int k = i+1;

    System.out.print("Pile " + k + ": ");
    for(int j = 0; j < coins.get(i); j++) {
        System.out.print("*");
    }

    System.out.println();
}


你会得到:

Pile 1: ****
Pile 2: *****
Pile 3: **

10-05 19:00