-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathBrainTrain.kt
78 lines (64 loc) · 1.86 KB
/
BrainTrain.kt
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
import java.util.Random
import java.util.Scanner
fun main(args: Array<String>) {
val comboToCopy = newCombo()
println("The colors are ${comboToCopy.print()}.")
val answerCombo = submitAnswer()
println("You answered ${answerCombo.print()}")
if (isSameCombo(comboToCopy, answerCombo)) println("You matched it!") else println("You didn't match it.")
}
class Combination(val num1: Int, val num2: Int, val num3: Int, val num4: Int) {
fun print(): String {
return "${numToColor(num1)}, ${numToColor(num2)}, ${numToColor(num3)}, and ${numToColor(num4)}"
}
fun numToColor(num: Int): String {
when (num) {
0 -> return "blue"
1 -> return "yellow"
2 -> return "red"
else -> return "green"
}
}
}
fun newCombo(): Combination {
val random = Random()
val newCombo = Combination(random.nextInt(4), random.nextInt(4), random.nextInt(4), random.nextInt(4))
return newCombo
}
fun inputColor(): Int {
val input = Scanner(System.`in`)
val colorRegex = Regex("blue|yellow|green|red")
while (true) {
print("Type: ")
val color = input.next()
if (!colorRegex.matches(color)) {
continue
} else when (color) {
"blue" -> return 0
"yellow" -> return 1
"red" -> return 2
"green" -> return 3
}
}
}
fun submitAnswer(): Combination {
println("What is your first color?")
val answer1 = inputColor()
println("What is your second color?")
val answer2 = inputColor()
println("What is your third color?")
val answer3 = inputColor()
println("What is your fourth color?")
val answer4 = inputColor()
val answerCombo = Combination(answer1, answer2, answer3, answer4)
return answerCombo
}
fun isSameCombo(combo1: Combination, combo2: Combination): Boolean {
if (combo1.num1 != combo2.num1) {
return false
} else if (combo1.num2 != combo2.num2) {
return false
} else if (combo1.num3 != combo2.num3) {
return false
} else return combo1.num4 == combo2.num4
}