DAY19 这边先帮你上一个按钮喔~(一)

之前的我们学会了增加文字与图片,今天就学一些让 app 增加互动性的按钮吧!

这次我们先从按按钮掷骰子的来练习练习 。最终成果如下:

https://ithelp.ithome.com.tw/upload/images/20211004/20140638YYTJV8QOyL.png


撰写 Kotlin 求随机骰子号码

在以前我们有使用 kotlin playground 来练习撰写 kotlin,如果懒得开环境的话,也是可以用 playground 来练习。

一开始我们先试着写出获得随机数字的程序码,我们会需要一个变数当作骰子数字范围,范围是1~6,透过内建的 random 涵式来获得数字。

fun main(){
    val diceRange: IntRange = (1..6)
}

宣告一个类型为 IntRange 的变数 diceRange。 IntRange 是一种数值类型,表示从起始到结束的整数范围。(1..6) 就是1到6的意思。

这时候还需要另一个变数来存放随机产生的数字:

fun main() {
    val diceRange: IntRange = 1..6
    val randomNumber = diceRange.random()
    println("随机数字为:${randomNumber}")
}

这样就能随机产生 1~6 的数字,当然你也可以这样写:

fun main(){
    val randomNumber = (1..6).random()
    println("随机数字为:${randomNumber}")
}

这就是骰子作用的一个小程序,接下来我们要建一个骰子的 class ,来让程序码更完整。


创建骰子的 Class

先把 main function 清空,并在他的外面新增一个名为 dice 的 Class :

fun main(){
    
}

class Dice{
     val side: Int = 6
}

一个简单的class 就完成啦,接下来把 roll 函式加进去,并在 main 里去创建一个实例(instance):

fun main(){
    val firstDice = Dice()                     //创立Instance 
    println("骰子面数为:${firstDice.side}")   //显示骰子面数
}

class Dice{
     val side: Int = 6
}

为类别 Dice 新增他的方法 roll 并在 main 里去调用 roll 随机产生数字:

fun main(){
    val firstDice = Dice()
    println("骰子面数为:${firstDice.side}")
    firstDice.roll()
}

class Dice{
    val side: Int = 6
    fun roll(){
        val randomNumber = (1..6).random()
        println("随机数字为:${randomNumber}")
    }
}

目前我们将滚动产生的结果放在 roll 这个 function 里面,有时我们把结果回传给调用这个函式的对象会更有用喔。

我们会需要在 main 里面宣告一个变数,这个变数会调用 roll 函式并接收 roll 产生的结果:

fun main() {
    val firstDice = Dice()
    val diceRoll = firstDice.roll()
}

接下来去 Dice class 调整一下,我们希望 roll 会回传 Int 的数值:

fun roll(): Int {  }

在大括号里必须 return 一个值,才能让 roll 顺利作用:

fun roll(): Int {
    val randomNumber = (1..6).random()
    return randomNumber
}

把程序完整一点就是:

fun main() {
    val firstDice = Dice()
    val diceRoll = firstDice.roll()
    println("你的${firstDice.side}面骰子,掷出了:${diceRoll}")
}
class Dice{
    val side: Int = 6

    fun roll(): Int {
    val randomNumber = (1..6).random()
    return randomNumber
    }
}
//output:你的6面骰子,掷出了:5

恭喜恭喜,你的第一颗骰子程序已经完成啦,明天我们再继续。

下一篇见写写打家打家摆掰。


<<:  Day21:【技术篇】SSH 的基本运作原理

>>:  【PHP Telegram Bot】Day25 - 入群欢迎机器人(1):发送欢迎讯息

[Day_30]不要贪心

其实这篇是想给自己一个警惕, 做人不要太贪心, 何谓太贪心? 我目前大三上, 这学期修了30学分, ...

28 - 有效的使用 Observability 的资料 (2) - 使用 Kibana Alerts 主动通知异常状况

有效的使用 Observability 的资料 系列文章 (1/4) - 透过 Machine Le...

07. DB x Factory x Test

昨天介绍过 Factory,今天我们要用在测试程序里。 试一下建立三笔资料是否资料库真的有三笔。 p...

Day11 - 模型与管理网站

今天内容主要为实作模型和使用Django提供的管理网站进行资料操作。 模型 设计模型 今天将建立两个...

[Day29] HTB Netmon

URL : https://app.hackthebox.eu/machines/Netmon I...