如何在简易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
相关产品推荐
相关产品推荐

