Java 爪哇火环饮酒游戏
我正在尝试创建一个“火环”饮酒游戏,有一些问题 我在Android Studio的res/drawable文件夹中添加了所有卡片图像: 我使用此代码从1-13生成一个随机数并选择一张卡:Java 爪哇火环饮酒游戏,java,android,android-studio,Java,Android,Android Studio,我正在尝试创建一个“火环”饮酒游戏,有一些问题 我在Android Studio的res/drawable文件夹中添加了所有卡片图像: 我使用此代码从1-13生成一个随机数并选择一张卡: final int min = 1; final int max = 13; private void randomizeCard() { final int random = new Random().nextInt((max - min) + 1) + min; Resources res
final int min = 1;
final int max = 13;
private void randomizeCard() {
final int random = new Random().nextInt((max - min) + 1) + min;
Resources res = getResources();
String mDrawableName = "c"+random;
int resID = res.getIdentifier(mDrawableName , "drawable", getPackageName());
Drawable drawable = ((Resources) res).getDrawable(resID );
cardImage.setImageDrawable(drawable );
}
问题是同一张卡片可能会出现很多次。我只希望同一张卡最多显示4次。我如何才能做到这一点,使其中一张牌不会出现超过4次?我的建议是使用列表和洗牌来限制重复的牌
final int min = 1;
final int max = 13;
final int duplicate = 4;
List<Integer> cards = new ArrayList<Integer>();
protected void onCreate(Bundle savedInstanceState) {
for (int i = min; i <= max; i++) {
for (int j=0 ;j<duplicate; j++) {
cards.add(i);
}
}
Collections.shuffle(cards);
}
int getCard(){
if(cards.size()>0){
int val = cards.get(0);
cards.remove(0);
return val;
}
return 0;
}
final int min=1;
最终int最大值=13;
最终整数重复=4;
列表卡=新的ArrayList();
创建时受保护的void(Bundle savedInstanceState){
对于(int i=min;我想你应该如何手工操作,并用文字描述你需要采取的步骤。然后找出如何将这些文字翻译成代码。@code学徒我从昨天早些时候就开始尝试解决这个问题,但我似乎找不到任何好的解决方案:/我应该把它放在哪里?我尝试将它添加到私有空间中randomizeCard()
code,每次用户选择一张新卡时都会运行,但相同的卡会显示超过4次。编辑:还尝试将其添加到创建时受保护的void(Bundle savedInstanceState){
但还是一样..不,你只做一次,然后从第一个到最后一个使用列表仍然不起作用。我进行了一轮测试,得到了1张王牌,4张8心牌。下面是我全部代码的示例:-也许我做错了什么?你没有在randomizeCard中使用getCard函数吗