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

如何在简易DICE应用中设置点数匹配提示消息?

实现骰子点数匹配提示的解决方案

嘿,我来帮你搞定这个功能!核心思路就是每次掷骰子后记录两个骰子的点数,然后判断是否相等,相等就给用户展示提示。下面是修改后的完整代码,我还加了一些实用的封装和优化:

public class MainActivity extends AppCompatActivity {
    // 用来存两个骰子的点数
    private int leftDiceValue;
    private int rightDiceValue;
    // 提前初始化Random对象,不用每次点击都新建
    private Random diceRandom = new Random();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        final ImageView leftDice = findViewById(R.id.image_leftDice);
        final ImageView rightDice = findViewById(R.id.image_rightDice);
        // 假设你有一个触发掷骰子的按钮,这里拿到它的实例
        Button rollBtn = findViewById(R.id.btn_roll_dice);

        rollBtn.setOnClickListener(v -> {
            // 生成1-6的随机点数(nextInt(6)是0-5,加1就变成1-6啦)
            leftDiceValue = diceRandom.nextInt(6) + 1;
            rightDiceValue = diceRandom.nextInt(6) + 1;

            // 给两个ImageView设置对应点数的骰子图片
            updateDiceImage(leftDice, leftDiceValue);
            updateDiceImage(rightDice, rightDiceValue);

            // 判断点数是否匹配,匹配就弹提示
            if (leftDiceValue == rightDiceValue) {
                Toast.makeText(this, "Number Match!", Toast.LENGTH_SHORT).show();
                // 要是想搞点花样,也可以换成这种提示:
                // Toast.makeText(this, "Double " + leftDiceValue + "! Nice roll!", Toast.LENGTH_SHORT).show();
            }
        });
    }

    // 封装设置骰子图片的方法,避免重复写switch代码
    private void updateDiceImage(ImageView diceView, int diceNumber) {
        switch (diceNumber) {
            case 1:
                diceView.setImageResource(R.drawable.dice_1);
                break;
            case 2:
                diceView.setImageResource(R.drawable.dice_2);
                break;
            case 3:
                diceView.setImageResource(R.drawable.dice_3);
                break;
            case 4:
                diceView.setImageResource(R.drawable.dice_4);
                break;
            case 5:
                diceView.setImageResource(R.drawable.dice_5);
                break;
            case 6:
                diceView.setImageResource(R.drawable.dice_6);
                break;
        }
    }
}

关键改动说明:

  • 点数存储:加了leftDiceValue和rightDiceValue两个成员变量,用来记录每次掷出的点数,方便后续判断是否匹配。
  • 掷骰子逻辑:在按钮点击事件里生成随机点数,调用封装的updateDiceImage方法设置对应图片,代码更简洁。
  • 匹配提示:每次掷完骰子后判断点数是否相等,用Toast弹出提示,你也可以根据需求换成对话框或者更新页面上的TextView来显示提示。
  • 小优化:提前初始化Random对象,避免每次点击都创建新实例,稍微提升一点性能。

要是你还有其他需求,比如想让提示更炫酷,或者有其他逻辑要加,随时调整就好!

内容的提问来源于stack exchange,提问作者just don't be user123

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 03:35:31