之前的我们学会了增加文字与图片,今天就学一些让 app 增加互动性的按钮吧!
这次我们先从按按钮掷骰子的来练习练习 。最终成果如下:
在以前我们有使用 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 ,来让程序码更完整。
先把 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
恭喜恭喜,你的第一颗骰子程序已经完成啦,明天我们再继续。
下一篇见写写打家打家摆掰。
>>: 【PHP Telegram Bot】Day25 - 入群欢迎机器人(1):发送欢迎讯息
其实这篇是想给自己一个警惕, 做人不要太贪心, 何谓太贪心? 我目前大三上, 这学期修了30学分, ...
有效的使用 Observability 的资料 系列文章 (1/4) - 透过 Machine Le...
昨天介绍过 Factory,今天我们要用在测试程序里。 试一下建立三笔资料是否资料库真的有三笔。 p...
今天内容主要为实作模型和使用Django提供的管理网站进行资料操作。 模型 设计模型 今天将建立两个...
URL : https://app.hackthebox.eu/machines/Netmon I...