-
Notifications
You must be signed in to change notification settings - Fork 49
Expand file tree
/
Copy pathMainActivity.kt
More file actions
executable file
·88 lines (74 loc) · 2.56 KB
/
MainActivity.kt
File metadata and controls
executable file
·88 lines (74 loc) · 2.56 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
/*
* Copyright (C) 2020 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.example.diceroller
import android.os.Bundle
import android.widget.Button
import android.widget.ImageView
import androidx.appcompat.app.AppCompatActivity
/**
* This activity allows the user to roll a dice and view the result
* on the screen.
*/
class MainActivity : AppCompatActivity() {
/**
* This method is called when the Activity is created.
*/
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
// Find the Button in the layout
val rollButton: Button = findViewById(R.id.button)
// Set a click listener on the button to roll the dice when the user taps the button
rollButton.setOnClickListener { rollDice() }
// Do a dice roll when the app starts
rollDice()
}
/**
* Roll the dice and update the screen with the result.
*/
private fun rollDice() {
// Create new Dice object with 6 sides and roll it
val dice = Dice(6)
val diceRoll = dice.roll()
// Find the ImageView in the layout
val diceImage: ImageView = findViewById(R.id.imageView)
// Update the ImageView with the correct drawable resource ID
diceImage.setImageResource(
// Determine which drawable resource ID to use based on the dice roll
when (diceRoll) {
1 -> R.drawable.dice_1
2 -> R.drawable.dice_2
3 -> R.drawable.dice_3
4 -> R.drawable.dice_4
5 -> R.drawable.dice_5
else -> R.drawable.dice_6
}
)
// Update the content description
diceImage.contentDescription = diceRoll.toString()
}
}
/**
* Dice with a fixed number of sides.
*/
class Dice(private val numSides: Int) {
/**
* Do a random dice roll and return the result.
*/
fun roll(): Int {
return (1..numSides).random()
}
}