You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过编译器生成随机数并在卡牌游戏中累加对应随机数得分

当然可以实现这个需求!你只需要稍微修改你的clsCard类,把生成卡牌时用到的随机数保存下来,之后就能在主程序中获取并用于得分累加了。下面是具体的修改方案:

解决方案

首先,我们需要在clsCard类中添加变量来保存生成level和object时的随机数,同时提供对应的getter方法让外部代码可以访问这些数值。

修改后的clsCard类

public class clsCard { 
    //Main variables of my program 
    private int value; 
    private int level, object; 
    // 新增变量:保存生成level和object的随机数
    private int levelRandom;
    private int objectRandom;
    private final int MaxFaceValue= 10; 
    private static String[] objects = {"Joker","hearts","spades","diamond","clubs"}; 
    private static String[] levels = {"Joker","Ace","2","3","4","5","6","7","8","9","10","Jack","Queen","King"}; 

    public clsCard() { 
        // 先生成随机数并保存,再赋值给level和object
        levelRandom = (int)(Math.random()*levels.length); 
        this.level= levelRandom; 
        objectRandom = (int)(Math.random()*objects.length); 
        this.object= objectRandom; 
    } 

    public @Override String toString() { 
        if(levels[level].equals("Joker") || objects[object].equals("Joker")) return "Joker"; 
        else return levels[level] + " of " + objects[object]; 
    } 

    public int getLevel() { 
        return level; 
    } 

    public int getObject() { 
        return object; 
    }

    // 新增getter方法:获取生成level的随机数
    public int getLevelRandom() {
        return levelRandom;
    }

    // 新增getter方法:获取生成object的随机数
    public int getObjectRandom() {
        return objectRandom;
    }
}

主程序中实现得分累加

现在你可以在主程序中创建卡牌后,获取生成等级的随机数,并根据条件累加得分:

public class Main {
    public static void main(String[] args) {
        // 初始化总得分
        int totalScore = 0;

        // 创建一张卡牌
        clsCard cardFace = new clsCard(); 
        System.out.println("生成的卡牌:" + cardFace);

        // 获取生成等级时的随机数
        int levelRand = cardFace.getLevelRandom();

        // 当随机数为5时,累加得分
        if (levelRand == 5) {
            totalScore += levelRand;
            System.out.println("触发得分累加!当前总得分:" + totalScore);
        }
    }
}

补充说明

  • 如果你只是需要用level的数值来判断(因为当前level本身就是生成时的随机数结果),也可以直接使用cardFace.getLevel()来替代getLevelRandom(),效果是一样的。但保存独立的levelRandom变量会让代码更清晰,尤其是以后如果修改level的生成逻辑(比如不是直接用随机数赋值)时,能确保你获取的是原始的随机数。
  • 同样的逻辑也适用于object的随机数,如果你需要对花色的随机数进行得分处理,也可以用getObjectRandom()来获取。

内容的提问来源于stack exchange,提问作者Bartlomiej Kaczmarek

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 08:23:47