iT邦幫忙

2021 iThome 鐵人賽

DAY 19
1

之前的我們學會了增加文字與圖片,今天就學一些讓 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

恭喜恭喜,你的第一顆骰子程式已經完成啦,明天我們再繼續。

下一篇見寫寫打家打家擺掰。


上一篇
DAY18 Conponent Tree 的黃色警告三角型?!
下一篇
DAY20 這邊先幫你上一個按鈕喔~(二)
系列文
糟了!是世界奇觀!30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言