我是一个初级程序员,第一次在这里提问,如果对格式有任何担心,我会感到非常抱歉。首先,感谢您的回答、耐心和原谅。实际上问题是“循环直到找到 4 张不同颜色的扑克牌”。我使用一个数组来表示卡号,并使用一个数组来表示它们的颜色。并且我用for语句填充cardNo数组,值从1到4,但显示为0,不知道为什么,我想这就是问题发生的地方,这就是我的全部代码。public static void collect() { int num=0; //represent 52 Poker Cards int [] cardNo=new int[52]; List list=new ArrayList<>(); // `int[] color=new int[4]` to represent 4 colors, so the value // of cardNo[] elements is the Color. for(int i=0;i<4;i++) { Arrays.fill(cardNo, i*13, (i+1)*13-1, i+1); } for(int n:cardNo) { list.add(n); } Collections.shuffle(list); // I use this for statement to check if it's worry with Arrays.fill(), // or it's about the list.add(). for(int i:cardNo) { System.out.print(i+" "); } System.out.println(list); /*int[] color=new int[4]; while(color[0]==0||color[1]==0||color[2]==0||color[3]==0) { int n=(int)(Math.random()*53); color[(int) list.get(n)-1]++; num++; } System.out.println("Number of picks: "+num);*/}
1 回答
慕尼黑8549860
TA贡献1818条经验 获得超11个赞
的toIndex
参数Arrays.fill
是独占的,所以改成:
Arrays.fill(cardNo, i*13, (i+1)*13 - 1, i+1);
到
Arrays.fill(cardNo, i*13, (i+1)*13, i+1);
Javadoc:
void java.util.Arrays.fill(int[] a, int fromIndex, int toIndex, int val)
将指定的 int 值分配给指定整数数组的指定范围内的每个元素。要填充的范围从 index fromIndex,inclusive 扩展到 index toIndex,exclusive。(如果 fromIndex==toIndex,则要填充的范围为空。)
添加回答
举报
0/150
提交
取消