我正在制作一个二十一点游戏(NON GUI),我将编写算法来决定是否接收另一张卡,下注多少等等。当我添加值时,我在ArrayList上收到一个越界错误。谢谢你的帮助。
package idk;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Random;
public class Something {
public static void main(String[] args) {
Something something = new Something();
ArrayList<Integer> place=new ArrayList<Integer>();
int i;
for(i=0; i<4; i++)
{
place.add(2);
}
for(i=4; i<8; i++)
{
place.add(3);
}
for(i=8; i<12; i++)
{
place.add(4);
}
for(i=12; i<16; i++)
{
place.add(5);
}
for(i=16; i<20; i++)
{
place.add(6);
}
for(i=20; i<24; i++)
{
place.add(7);
}
for(i=24; i<28; i++)
{
place.add(8);
}
for(i=28; i<32; i++)
{
place.add(9);
}
for(i=32; i<48; i++)
{
place.add(10);
}
for(i=48; i<52; i++)
{
place.add(11);
}
for(i=0; i<52; i++)
{
System.out.println(place.get(i));
}
int[] dealer;
dealer = new int[28];
for(int w=0; w<2; w++)
{
int min = 0;
int max = 52;
int range = (max - min);
int random = new Random().nextInt(range + 1) + min;
int card = place.get(random);
dealer[i]=card;
place.remove(random);
if(i==1)
{
System.out.println("The dealer's face up card is " + card);
}
}
}
}
答案 0 :(得分:1)
问题在于此行dealer[i]=card;
检查i
的值,它大于声明的dealer[]
大小。
在for
的最后一次i
循环后,i
的值为52,dealer[]
的大小为28。