└── MathGame ├── .gitignore ├── .idea ├── .gitignore ├── .name ├── compiler.xml ├── gradle.xml ├── misc.xml └── render.experimental.xml ├── app ├── .gitignore ├── build.gradle ├── proguard-rules.pro └── src │ ├── androidTest │ └── java │ │ └── com │ │ └── techmania │ │ └── mathgame │ │ └── ExampleInstrumentedTest.kt │ ├── main │ ├── AndroidManifest.xml │ ├── java │ │ └── com │ │ │ └── techmania │ │ │ └── mathgame │ │ │ ├── GameActivity.kt │ │ │ ├── MainActivity.kt │ │ │ ├── MultiActivity.kt │ │ │ ├── ResultActivity.kt │ │ │ └── SubActivity.kt │ └── res │ │ ├── drawable-v24 │ │ └── ic_launcher_foreground.xml │ │ ├── drawable │ │ ├── button_shape.xml │ │ ├── first.png │ │ ├── ic_launcher_background.xml │ │ ├── second.png │ │ └── third.jpg │ │ ├── layout │ │ ├── activity_game.xml │ │ ├── activity_main.xml │ │ ├── activity_multi.xml │ │ ├── activity_result.xml │ │ └── activity_sub.xml │ │ ├── mipmap-anydpi-v26 │ │ ├── ic_launcher.xml │ │ └── ic_launcher_round.xml │ │ ├── mipmap-hdpi │ │ ├── ic_launcher.webp │ │ └── ic_launcher_round.webp │ │ ├── mipmap-mdpi │ │ ├── ic_launcher.webp │ │ └── ic_launcher_round.webp │ │ ├── mipmap-xhdpi │ │ ├── ic_launcher.webp │ │ └── ic_launcher_round.webp │ │ ├── mipmap-xxhdpi │ │ ├── ic_launcher.webp │ │ └── ic_launcher_round.webp │ │ ├── mipmap-xxxhdpi │ │ ├── ic_launcher.webp │ │ └── ic_launcher_round.webp │ │ ├── values-night │ │ └── themes.xml │ │ └── values │ │ ├── colors.xml │ │ ├── strings.xml │ │ └── themes.xml │ └── test │ └── java │ └── com │ └── techmania │ └── mathgame │ └── ExampleUnitTest.kt ├── build.gradle ├── gradle.properties ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat └── settings.gradle /MathGame/.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | .gradle 3 | /local.properties 4 | /.idea/caches 5 | /.idea/libraries 6 | /.idea/modules.xml 7 | /.idea/workspace.xml 8 | /.idea/navEditor.xml 9 | /.idea/assetWizardSettings.xml 10 | .DS_Store 11 | /build 12 | /captures 13 | .externalNativeBuild 14 | .cxx 15 | local.properties 16 | -------------------------------------------------------------------------------- /MathGame/.idea/.gitignore: -------------------------------------------------------------------------------- 1 | # Default ignored files 2 | /shelf/ 3 | /workspace.xml 4 | -------------------------------------------------------------------------------- /MathGame/.idea/.name: -------------------------------------------------------------------------------- 1 | Math Game -------------------------------------------------------------------------------- /MathGame/.idea/compiler.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /MathGame/.idea/gradle.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 19 | 20 | -------------------------------------------------------------------------------- /MathGame/.idea/misc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 15 | 16 | 17 | 18 | 19 | 20 | 22 | -------------------------------------------------------------------------------- /MathGame/.idea/render.experimental.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | -------------------------------------------------------------------------------- /MathGame/app/.gitignore: -------------------------------------------------------------------------------- 1 | /build -------------------------------------------------------------------------------- /MathGame/app/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'com.android.application' 3 | id 'kotlin-android' 4 | } 5 | 6 | android { 7 | compileSdk 31 8 | 9 | defaultConfig { 10 | applicationId "com.techmania.mathgame" 11 | minSdk 16 12 | targetSdk 31 13 | versionCode 1 14 | versionName "1.0" 15 | 16 | testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" 17 | } 18 | 19 | buildTypes { 20 | release { 21 | minifyEnabled false 22 | proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' 23 | } 24 | } 25 | compileOptions { 26 | sourceCompatibility JavaVersion.VERSION_1_8 27 | targetCompatibility JavaVersion.VERSION_1_8 28 | } 29 | kotlinOptions { 30 | jvmTarget = '1.8' 31 | } 32 | } 33 | 34 | dependencies { 35 | 36 | implementation 'androidx.core:core-ktx:1.6.0' 37 | implementation 'androidx.appcompat:appcompat:1.3.1' 38 | implementation 'com.google.android.material:material:1.4.0' 39 | implementation 'androidx.constraintlayout:constraintlayout:2.1.0' 40 | testImplementation 'junit:junit:4.+' 41 | androidTestImplementation 'androidx.test.ext:junit:1.1.3' 42 | androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0' 43 | } -------------------------------------------------------------------------------- /MathGame/app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # You can control the set of applied configuration files using the 3 | # proguardFiles setting in build.gradle. 4 | # 5 | # For more details, see 6 | # http://developer.android.com/guide/developing/tools/proguard.html 7 | 8 | # If your project uses WebView with JS, uncomment the following 9 | # and specify the fully qualified class name to the JavaScript interface 10 | # class: 11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 12 | # public *; 13 | #} 14 | 15 | # Uncomment this to preserve the line number information for 16 | # debugging stack traces. 17 | #-keepattributes SourceFile,LineNumberTable 18 | 19 | # If you keep the line number information, uncomment this to 20 | # hide the original source file name. 21 | #-renamesourcefileattribute SourceFile -------------------------------------------------------------------------------- /MathGame/app/src/androidTest/java/com/techmania/mathgame/ExampleInstrumentedTest.kt: -------------------------------------------------------------------------------- 1 | package com.techmania.mathgame 2 | 3 | import androidx.test.platform.app.InstrumentationRegistry 4 | import androidx.test.ext.junit.runners.AndroidJUnit4 5 | 6 | import org.junit.Test 7 | import org.junit.runner.RunWith 8 | 9 | import org.junit.Assert.* 10 | 11 | /** 12 | * Instrumented test, which will execute on an Android device. 13 | * 14 | * See [testing documentation](http://d.android.com/tools/testing). 15 | */ 16 | @RunWith(AndroidJUnit4::class) 17 | class ExampleInstrumentedTest { 18 | @Test 19 | fun useAppContext() { 20 | // Context of the app under test. 21 | val appContext = InstrumentationRegistry.getInstrumentation().targetContext 22 | assertEquals("com.techmania.mathgame", appContext.packageName) 23 | } 24 | } -------------------------------------------------------------------------------- /MathGame/app/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 11 | 15 | 19 | 23 | 28 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /MathGame/app/src/main/java/com/techmania/mathgame/GameActivity.kt: -------------------------------------------------------------------------------- 1 | package com.techmania.mathgame 2 | 3 | import android.content.Intent 4 | import androidx.appcompat.app.AppCompatActivity 5 | import android.os.Bundle 6 | import android.os.CountDownTimer 7 | import android.widget.Button 8 | import android.widget.EditText 9 | import android.widget.TextView 10 | import android.widget.Toast 11 | import java.util.* 12 | import kotlin.random.Random 13 | 14 | class GameActivity : AppCompatActivity() { 15 | 16 | lateinit var textScore : TextView 17 | lateinit var textLife : TextView 18 | lateinit var textTime : TextView 19 | 20 | lateinit var textQuestion : TextView 21 | lateinit var editTextAnswer : EditText 22 | 23 | lateinit var buttonOk : Button 24 | lateinit var buttonNext : Button 25 | 26 | var correctAnswer = 0 27 | var userScore = 0 28 | var userLife = 3 29 | 30 | lateinit var timer : CountDownTimer 31 | private val startTimerInMillis : Long = 20000 32 | var timeLeftInMillis : Long = startTimerInMillis 33 | 34 | override fun onCreate(savedInstanceState: Bundle?) { 35 | super.onCreate(savedInstanceState) 36 | setContentView(R.layout.activity_game) 37 | 38 | supportActionBar!!.title = "Addition" 39 | 40 | textScore = findViewById(R.id.textViewScore) 41 | textLife = findViewById(R.id.textViewLife) 42 | textTime = findViewById(R.id.textViewTime) 43 | textQuestion = findViewById(R.id.textViewQuestion) 44 | editTextAnswer = findViewById(R.id.editTextAnswer) 45 | buttonOk = findViewById(R.id.buttonOk) 46 | buttonNext = findViewById(R.id.buttonNext) 47 | 48 | gameContinue() 49 | 50 | buttonOk.setOnClickListener { 51 | 52 | val input = editTextAnswer.text.toString() 53 | 54 | if (input == "") 55 | { 56 | Toast.makeText(applicationContext,"Please write an answer or click the next button", 57 | Toast.LENGTH_LONG).show() 58 | } 59 | else 60 | { 61 | pauseTimer() 62 | 63 | val userAnswer = input.toInt() 64 | 65 | if (userAnswer == correctAnswer) 66 | { 67 | userScore = userScore + 10 68 | textQuestion.text = "Congratulations, your answer is correct" 69 | textScore.text = userScore.toString() 70 | } 71 | else 72 | { 73 | userLife-- 74 | textQuestion.text = "Sorry, your answer is wrong" 75 | textLife.text = userLife.toString() 76 | } 77 | 78 | } 79 | 80 | } 81 | 82 | buttonNext.setOnClickListener { 83 | 84 | pauseTimer() 85 | resetTimer() 86 | 87 | editTextAnswer.setText("") 88 | 89 | if (userLife == 0) 90 | { 91 | Toast.makeText(applicationContext,"Game Over",Toast.LENGTH_LONG).show() 92 | val intent = Intent(this@GameActivity,ResultActivity::class.java) 93 | intent.putExtra("score",userScore) 94 | startActivity(intent) 95 | finish() 96 | } 97 | else 98 | { 99 | gameContinue() 100 | } 101 | 102 | } 103 | 104 | } 105 | 106 | fun gameContinue() 107 | { 108 | val number1 = Random.nextInt(0,100) 109 | val number2 = Random.nextInt(0,100) 110 | 111 | textQuestion.text = "$number1 + $number2" 112 | 113 | correctAnswer = number1 + number2 114 | 115 | startTimer() 116 | 117 | } 118 | 119 | fun startTimer() 120 | { 121 | timer = object : CountDownTimer(timeLeftInMillis,1000){ 122 | 123 | override fun onTick(millisUntilFinished : Long) { 124 | 125 | timeLeftInMillis = millisUntilFinished 126 | updateText() 127 | 128 | } 129 | 130 | override fun onFinish() { 131 | 132 | pauseTimer() 133 | resetTimer() 134 | updateText() 135 | 136 | userLife-- 137 | textLife.text = userLife.toString() 138 | textQuestion.text = "Sorry, Time is up!" 139 | 140 | } 141 | 142 | 143 | }.start() 144 | } 145 | 146 | fun updateText() 147 | { 148 | val remainingTime : Int = (timeLeftInMillis / 1000).toInt() 149 | textTime.text = String.format(Locale.getDefault(),"%02d",remainingTime) 150 | } 151 | 152 | fun pauseTimer() 153 | { 154 | timer.cancel() 155 | } 156 | 157 | fun resetTimer() 158 | { 159 | timeLeftInMillis = startTimerInMillis 160 | updateText() 161 | } 162 | 163 | 164 | } -------------------------------------------------------------------------------- /MathGame/app/src/main/java/com/techmania/mathgame/MainActivity.kt: -------------------------------------------------------------------------------- 1 | package com.techmania.mathgame 2 | 3 | import android.content.Intent 4 | import androidx.appcompat.app.AppCompatActivity 5 | import android.os.Bundle 6 | import android.widget.Button 7 | 8 | class MainActivity : AppCompatActivity() { 9 | 10 | lateinit var addition : Button 11 | lateinit var subtraction : Button 12 | lateinit var multi : Button 13 | 14 | override fun onCreate(savedInstanceState: Bundle?) { 15 | super.onCreate(savedInstanceState) 16 | setContentView(R.layout.activity_main) 17 | 18 | addition = findViewById(R.id.buttonAdd) 19 | subtraction = findViewById(R.id.buttonSub) 20 | multi = findViewById(R.id.buttonMulti) 21 | 22 | addition.setOnClickListener { 23 | 24 | val intent = Intent(this@MainActivity,GameActivity::class.java) 25 | startActivity(intent) 26 | 27 | } 28 | subtraction.setOnClickListener { 29 | 30 | val intent = Intent(this@MainActivity,SubActivity::class.java) 31 | startActivity(intent) 32 | 33 | } 34 | multi.setOnClickListener { 35 | 36 | val intent = Intent(this@MainActivity,MultiActivity::class.java) 37 | startActivity(intent) 38 | 39 | } 40 | 41 | } 42 | } -------------------------------------------------------------------------------- /MathGame/app/src/main/java/com/techmania/mathgame/MultiActivity.kt: -------------------------------------------------------------------------------- 1 | package com.techmania.mathgame 2 | 3 | import android.content.Intent 4 | import androidx.appcompat.app.AppCompatActivity 5 | import android.os.Bundle 6 | import android.os.CountDownTimer 7 | import android.widget.Button 8 | import android.widget.EditText 9 | import android.widget.TextView 10 | import android.widget.Toast 11 | import java.util.* 12 | import kotlin.random.Random 13 | 14 | class MultiActivity : AppCompatActivity() { 15 | 16 | lateinit var textScore : TextView 17 | lateinit var textLife : TextView 18 | lateinit var textTime : TextView 19 | 20 | lateinit var textQuestion : TextView 21 | lateinit var editTextAnswer : EditText 22 | 23 | lateinit var buttonOk : Button 24 | lateinit var buttonNext : Button 25 | 26 | var correctAnswer = 0 27 | var userScore = 0 28 | var userLife = 3 29 | 30 | lateinit var timer : CountDownTimer 31 | private val startTimerInMillis : Long = 20000 32 | var timeLeftInMillis : Long = startTimerInMillis 33 | 34 | override fun onCreate(savedInstanceState: Bundle?) { 35 | super.onCreate(savedInstanceState) 36 | setContentView(R.layout.activity_multi) 37 | 38 | supportActionBar!!.title = "Multiplication" 39 | 40 | textScore = findViewById(R.id.textViewScoreMulti) 41 | textLife = findViewById(R.id.textViewLifeMulti) 42 | textTime = findViewById(R.id.textViewTimeMulti) 43 | textQuestion = findViewById(R.id.textViewQuestionMulti) 44 | editTextAnswer = findViewById(R.id.editTextAnswerMulti) 45 | buttonOk = findViewById(R.id.buttonOkMulti) 46 | buttonNext = findViewById(R.id.buttonNextMulti) 47 | 48 | gameContinue() 49 | 50 | buttonOk.setOnClickListener { 51 | 52 | val input = editTextAnswer.text.toString() 53 | 54 | if (input == "") 55 | { 56 | Toast.makeText(applicationContext,"Please write an answer or click the next button", 57 | Toast.LENGTH_LONG).show() 58 | } 59 | else 60 | { 61 | pauseTimer() 62 | 63 | val userAnswer = input.toInt() 64 | 65 | if (userAnswer == correctAnswer) 66 | { 67 | userScore = userScore + 10 68 | textQuestion.text = "Congratulations, your answer is correct" 69 | textScore.text = userScore.toString() 70 | } 71 | else 72 | { 73 | userLife-- 74 | textQuestion.text = "Sorry, your answer is wrong" 75 | textLife.text = userLife.toString() 76 | } 77 | 78 | } 79 | 80 | } 81 | 82 | buttonNext.setOnClickListener { 83 | 84 | pauseTimer() 85 | resetTimer() 86 | 87 | editTextAnswer.setText("") 88 | 89 | if (userLife == 0) 90 | { 91 | Toast.makeText(applicationContext,"Game Over", Toast.LENGTH_LONG).show() 92 | val intent = Intent(this@MultiActivity,ResultActivity::class.java) 93 | intent.putExtra("score",userScore) 94 | startActivity(intent) 95 | finish() 96 | } 97 | else 98 | { 99 | gameContinue() 100 | } 101 | 102 | } 103 | 104 | } 105 | 106 | fun gameContinue() 107 | { 108 | val number1 = Random.nextInt(0,10) 109 | val number2 = Random.nextInt(0,10) 110 | 111 | textQuestion.text = "$number1 * $number2" 112 | 113 | correctAnswer = number1 * number2 114 | 115 | startTimer() 116 | 117 | } 118 | 119 | fun startTimer() 120 | { 121 | timer = object : CountDownTimer(timeLeftInMillis,1000){ 122 | 123 | override fun onTick(millisUntilFinished : Long) { 124 | 125 | timeLeftInMillis = millisUntilFinished 126 | updateText() 127 | 128 | } 129 | 130 | override fun onFinish() { 131 | 132 | pauseTimer() 133 | resetTimer() 134 | updateText() 135 | 136 | userLife-- 137 | textLife.text = userLife.toString() 138 | textQuestion.text = "Sorry, Time is up!" 139 | 140 | } 141 | 142 | 143 | }.start() 144 | } 145 | 146 | fun updateText() 147 | { 148 | val remainingTime : Int = (timeLeftInMillis / 1000).toInt() 149 | textTime.text = String.format(Locale.getDefault(),"%02d",remainingTime) 150 | } 151 | 152 | fun pauseTimer() 153 | { 154 | timer.cancel() 155 | } 156 | 157 | fun resetTimer() 158 | { 159 | timeLeftInMillis = startTimerInMillis 160 | updateText() 161 | } 162 | } -------------------------------------------------------------------------------- /MathGame/app/src/main/java/com/techmania/mathgame/ResultActivity.kt: -------------------------------------------------------------------------------- 1 | package com.techmania.mathgame 2 | 3 | import android.content.Intent 4 | import androidx.appcompat.app.AppCompatActivity 5 | import android.os.Bundle 6 | import android.widget.Button 7 | import android.widget.TextView 8 | 9 | class ResultActivity : AppCompatActivity() { 10 | 11 | lateinit var result : TextView 12 | lateinit var playAgain : Button 13 | lateinit var exit : Button 14 | 15 | override fun onCreate(savedInstanceState: Bundle?) { 16 | super.onCreate(savedInstanceState) 17 | setContentView(R.layout.activity_result) 18 | 19 | result = findViewById(R.id.textViewResult) 20 | playAgain = findViewById(R.id.buttonAgain) 21 | exit = findViewById(R.id.buttonExit) 22 | 23 | val score = intent.getIntExtra("score",0) 24 | result.text = "Your score: " + score 25 | 26 | playAgain.setOnClickListener { 27 | 28 | val intent = Intent(this@ResultActivity,MainActivity::class.java) 29 | startActivity(intent) 30 | finish() 31 | 32 | } 33 | 34 | exit.setOnClickListener { 35 | 36 | val intent = Intent(Intent.ACTION_MAIN) 37 | intent.addCategory(Intent.CATEGORY_HOME) 38 | intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK 39 | startActivity(intent) 40 | 41 | } 42 | 43 | } 44 | } -------------------------------------------------------------------------------- /MathGame/app/src/main/java/com/techmania/mathgame/SubActivity.kt: -------------------------------------------------------------------------------- 1 | package com.techmania.mathgame 2 | 3 | import android.content.Intent 4 | import androidx.appcompat.app.AppCompatActivity 5 | import android.os.Bundle 6 | import android.os.CountDownTimer 7 | import android.widget.Button 8 | import android.widget.EditText 9 | import android.widget.TextView 10 | import android.widget.Toast 11 | import java.util.* 12 | import kotlin.random.Random 13 | 14 | class SubActivity : AppCompatActivity() { 15 | 16 | lateinit var textScore : TextView 17 | lateinit var textLife : TextView 18 | lateinit var textTime : TextView 19 | 20 | lateinit var textQuestion : TextView 21 | lateinit var editTextAnswer : EditText 22 | 23 | lateinit var buttonOk : Button 24 | lateinit var buttonNext : Button 25 | 26 | var correctAnswer = 0 27 | var userScore = 0 28 | var userLife = 3 29 | 30 | lateinit var timer : CountDownTimer 31 | private val startTimerInMillis : Long = 20000 32 | var timeLeftInMillis : Long = startTimerInMillis 33 | 34 | override fun onCreate(savedInstanceState: Bundle?) { 35 | super.onCreate(savedInstanceState) 36 | setContentView(R.layout.activity_sub) 37 | 38 | supportActionBar!!.title = "Subtraction" 39 | 40 | textScore = findViewById(R.id.textViewScoreSub) 41 | textLife = findViewById(R.id.textViewLifeSub) 42 | textTime = findViewById(R.id.textViewTimeSub) 43 | textQuestion = findViewById(R.id.textViewQuestionSub) 44 | editTextAnswer = findViewById(R.id.editTextAnswerSub) 45 | buttonOk = findViewById(R.id.buttonOkSub) 46 | buttonNext = findViewById(R.id.buttonNextSub) 47 | 48 | gameContinue() 49 | 50 | buttonOk.setOnClickListener { 51 | 52 | val input = editTextAnswer.text.toString() 53 | 54 | if (input == "") 55 | { 56 | Toast.makeText(applicationContext,"Please write an answer or click the next button", 57 | Toast.LENGTH_LONG).show() 58 | } 59 | else 60 | { 61 | pauseTimer() 62 | 63 | val userAnswer = input.toInt() 64 | 65 | if (userAnswer == correctAnswer) 66 | { 67 | userScore = userScore + 10 68 | textQuestion.text = "Congratulations, your answer is correct" 69 | textScore.text = userScore.toString() 70 | } 71 | else 72 | { 73 | userLife-- 74 | textQuestion.text = "Sorry, your answer is wrong" 75 | textLife.text = userLife.toString() 76 | } 77 | 78 | } 79 | 80 | } 81 | 82 | buttonNext.setOnClickListener { 83 | 84 | pauseTimer() 85 | resetTimer() 86 | 87 | editTextAnswer.setText("") 88 | 89 | if (userLife == 0) 90 | { 91 | Toast.makeText(applicationContext,"Game Over", Toast.LENGTH_LONG).show() 92 | val intent = Intent(this@SubActivity,ResultActivity::class.java) 93 | intent.putExtra("score",userScore) 94 | startActivity(intent) 95 | finish() 96 | } 97 | else 98 | { 99 | gameContinue() 100 | } 101 | 102 | } 103 | 104 | } 105 | 106 | fun gameContinue() 107 | { 108 | val number1 = Random.nextInt(0,100) 109 | val number2 = Random.nextInt(0,100) 110 | 111 | if (number1 >= number2) 112 | { 113 | textQuestion.text = "$number1 - $number2" 114 | correctAnswer = number1 - number2 115 | } 116 | else 117 | { 118 | textQuestion.text = "$number2 - $number1" 119 | correctAnswer = number2 - number1 120 | } 121 | 122 | startTimer() 123 | 124 | } 125 | 126 | fun startTimer() 127 | { 128 | timer = object : CountDownTimer(timeLeftInMillis,1000){ 129 | 130 | override fun onTick(millisUntilFinished : Long) { 131 | 132 | timeLeftInMillis = millisUntilFinished 133 | updateText() 134 | 135 | } 136 | 137 | override fun onFinish() { 138 | 139 | pauseTimer() 140 | resetTimer() 141 | updateText() 142 | 143 | userLife-- 144 | textLife.text = userLife.toString() 145 | textQuestion.text = "Sorry, Time is up!" 146 | 147 | } 148 | 149 | 150 | }.start() 151 | } 152 | 153 | fun updateText() 154 | { 155 | val remainingTime : Int = (timeLeftInMillis / 1000).toInt() 156 | textTime.text = String.format(Locale.getDefault(),"%02d",remainingTime) 157 | } 158 | 159 | fun pauseTimer() 160 | { 161 | timer.cancel() 162 | } 163 | 164 | fun resetTimer() 165 | { 166 | timeLeftInMillis = startTimerInMillis 167 | updateText() 168 | } 169 | } -------------------------------------------------------------------------------- /MathGame/app/src/main/res/drawable-v24/ic_launcher_foreground.xml: -------------------------------------------------------------------------------- 1 | 7 | 8 | 9 | 15 | 18 | 21 | 22 | 23 | 24 | 30 | -------------------------------------------------------------------------------- /MathGame/app/src/main/res/drawable/button_shape.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 7 | 8 | 11 | 13 | 14 | -------------------------------------------------------------------------------- /MathGame/app/src/main/res/drawable/first.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OakAcademy/math-game-according-to-three-game-activity-with-kotlin/94b4488cf6edab065ed19dcca10683517c6f1736/MathGame/app/src/main/res/drawable/first.png -------------------------------------------------------------------------------- /MathGame/app/src/main/res/drawable/ic_launcher_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 10 | 15 | 20 | 25 | 30 | 35 | 40 | 45 | 50 | 55 | 60 | 65 | 70 | 75 | 80 | 85 | 90 | 95 | 100 | 105 | 110 | 115 | 120 | 125 | 130 | 135 | 140 | 145 | 150 | 155 | 160 | 165 | 170 | 171 | -------------------------------------------------------------------------------- /MathGame/app/src/main/res/drawable/second.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OakAcademy/math-game-according-to-three-game-activity-with-kotlin/94b4488cf6edab065ed19dcca10683517c6f1736/MathGame/app/src/main/res/drawable/second.png -------------------------------------------------------------------------------- /MathGame/app/src/main/res/drawable/third.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OakAcademy/math-game-according-to-three-game-activity-with-kotlin/94b4488cf6edab065ed19dcca10683517c6f1736/MathGame/app/src/main/res/drawable/third.jpg -------------------------------------------------------------------------------- /MathGame/app/src/main/res/layout/activity_game.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | 17 | 18 | 26 | 27 | 35 | 36 | 44 | 45 | 53 | 54 | 62 | 63 | 71 | 72 | 73 | 83 | 84 | 97 | 98 | 103 | 104 |