java - 如何在 android 上打乱 ArrayMap

标签 java android

我正在生成一个 ArrayMap 来玩纸牌游戏,我想洗牌 arrayMap 以便我可以毫无问题地按顺序选择,有一些方法可以帮助我,比如 Arraylists 存在的 .shuffle()。

public ArrayMap<Integer,Carta> carte=new ArrayMap<>(dimensioneMazzo); 

for(int i=0;i<4;i++){
    for(int j=1;j<=10;j++){
        switch(i){
            case 0: 
                carte.put(cartePresenti,new Carta(j,Semi.Denari,false,false));
                break;
            case 1: 
                carte.put(cartePresenti,new Carta(j,Semi.Bastoni,false,false));
                break;
            case 2: 
                carte.put(cartePresenti,new Carta(j,Semi.Coppe,false,false));
                break;
            case 3: 
                carte.put(cartePresenti,new Carta(j,Semi.Spade,false,false));
                break;
            }

            this.cartePresenti=cartePresenti+1;
        }
    }

如果没有方法我怎样才能随机生成卡片?

最佳答案

假设 cartePresenti 从零开始。这应该有效:

Random r = new Random();

int n = carte.size();
for (int i = n - 1; i > 0; i--) {  
    int j = r.nextInt(i + 1); 

    Carta temp = carte.get(i); 
    carte.put(i, carte.get(j));
    carte.put(j, temp);
} 

关于java - 如何在 android 上打乱 ArrayMap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55706453/

相关文章:

java - 我可以用 sun.misc.Unsafe 覆盖对象吗?

java - Springboot 中有没有一种方法可以在不使用属性文件的情况下使用动态数据进行国际化

Scala 中的 Java IO

android - 如何配置 adb 以监听特定的网络接口(interface)?

java - 当我运行应用程序时,已排序的 ArrayList 未显示为已排序

java - 我怎样才能用java创建这些形状

java - Glassfish 4.12 内部异常 : java. lang.NoClassDefFoundError: org/apache/commons/lang3/Validate

android - 解析数据时出错 org.json.JSONException : Value <br of type java. lang.String 无法转换为 JSONObject

java - Youtube API 在暂停时崩溃

Android:如何在 map 上绘制从源到目的地的多条路线?