金老师AndroidHomeworkTwo

掷骰子,RT

在这里插入图片描述
  比较基础的图片交互qwq,因为没提前看老师的demo所以自己直接糊了一个: 利用ImageView放置骰子的图片,当用户在EditText输入(1…6)的数字后,点击确认按钮后先random一个当做机器猜的数,再次random一个当做骰子实际的结果。根据实际的结果改变图片,根据谁猜得到距离实际结果近判断输赢,怪简陋的(

package com.example.testapplication

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.*
import java.lang.Math.abs

class MainActivity : AppCompatActivity() {

    //全局变量(并不
    lateinit var diceImage : ImageView
    lateinit var guassNum : EditText

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        diceImage = findViewById(R.id.diceImage)
        guassNum = findViewById(R.id.guassNum)
        //确认按钮和游戏的显示信息
        val submitBtn = findViewById<Button>(R.id.submitBtn)
        val gameInfo = findViewById<TextView>(R.id.gameInfo)

        submitBtn.setOnClickListener {
            if(guassNum.text.isBlank()) {
                //空输入时弹窗提示
                Toast.makeText(this,"请输入猜的数字",Toast.LENGTH_SHORT).show()
            }
            else {
                //利用EditText限制用户输入只能为数字
                var guessNumber = guassNum.text.toString().toInt()
                //皮?
                if(guessNumber == 0 || guessNumber > 6)
                    Toast.makeText(this,"我家的骰子只有1-6",Toast.LENGTH_SHORT).show()
                else {
                    var machineGuess = (1..6).random()
                    var result = rollDice()
                    gameInfo.text = "您猜的数字: ${guessNumber},机器猜的数字:${machineGuess}"
                    //根据两边猜的数 哪边距离实际产生的数近就判断谁赢
                    if(abs(result - guessNumber) < abs(result - machineGuess))
                        Toast.makeText(this,"你赢了",Toast.LENGTH_SHORT).show()
                    else if(abs(result - guessNumber) > abs(result - machineGuess))
                        Toast.makeText(this,"你输了",Toast.LENGTH_SHORT).show()
                    else Toast.makeText(this,"平局",Toast.LENGTH_SHORT).show()
                }
            }
        }
    }

    fun rollDice() : Int {
        //掷骰子 并且返回掷骰子的结果
        var randomInt = (1..6).random()
        when(randomInt) {
            1 -> diceImage.setImageResource(R.drawable.one)
            2 -> diceImage.setImageResource(R.drawable.two)
            3 -> diceImage.setImageResource(R.drawable.three)
            4 -> diceImage.setImageResource(R.drawable.four)
            5 -> diceImage.setImageResource(R.drawable.five)
            6 -> diceImage.setImageResource(R.drawable.six)
        }
        return randomInt
    }
}

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值