Skip to content

Commit f9c1d17

Browse files
authored
Merge pull request mouredev#7231 from blackriper/main
Reto#48-kotlin
2 parents 9aaacdf + 70fb037 commit f9c1d17

File tree

1 file changed

+97
-0
lines changed

1 file changed

+97
-0
lines changed
Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
1+
import kotlin.random.Random
2+
3+
// al seleccionar una vez se ponen o quitan adornos eso evita llenar el arbol
4+
5+
class ChrismasTree {
6+
7+
private var height=0
8+
private var addStar=false
9+
private var addSpheres=false
10+
private var addFocus=false
11+
private var focusOn=true
12+
private var lisOfSpheres= mutableListOf<Int>()
13+
14+
fun createTree(){
15+
println("Introduce la altura del arbol: ")
16+
height = readLine()!!.toInt()
17+
}
18+
19+
fun actionsUser(){
20+
while (true){
21+
drawChristmasTree()
22+
println("selecciona una accion")
23+
println("1. Añadir o eliminar estrella en la copa (@)")
24+
println("2. Añadir o eliminar bolas de dos en dos (O) aleatoriamente")
25+
println("3. Añadir o eliminar luces de tres en tres (+) aleatoriamente")
26+
println("4. Apagar (*) o encender (+) las luces")
27+
println("5.- exit")
28+
var option= readLine()!!.toInt()
29+
when(option){
30+
1->{
31+
addStar=!addStar
32+
if (addStar) println("se ha agregado la estrella al arbol")
33+
else println("se ha quitado la estrella del arbol")
34+
}
35+
2->{
36+
addSpheres=!addSpheres
37+
if (addSpheres) println("se han agregado esferas al arbol")
38+
else println("se ha quitado las esferas del arbol")
39+
40+
41+
}
42+
3->{
43+
addFocus=!addFocus
44+
if (addFocus) println("se han agregado luces al arbol ")
45+
else println("se han quitado las luces del arbol")
46+
}
47+
4->{
48+
focusOn=!focusOn
49+
if (focusOn) println("se han prendido las luces del arbol ")
50+
else println("se han apagado las luces del arbol")
51+
}
52+
5->break
53+
}
54+
}
55+
}
56+
57+
private fun drawChristmasTree() {
58+
if (lisOfSpheres.size>0) lisOfSpheres.clear()
59+
60+
//dibujar arbol
61+
for (i in 0..<height) {
62+
for (j in 0..<height - i - 1) {
63+
print(" ")
64+
}
65+
for (k in 0..<2 * i + 1) {
66+
if (addStar && i==0)print("@")
67+
else if (k%2==0 && addSpheres){
68+
print("O")
69+
lisOfSpheres.add(k)
70+
}
71+
else if (k%3==0 && addFocus && !lisOfSpheres.contains(k)){
72+
if (focusOn) print("+") else print("*")
73+
}
74+
else print("*")
75+
76+
}
77+
println()
78+
}
79+
//dibujar el tronco
80+
for (i in 0..<2) {
81+
for (j in 0..<height - 2) {
82+
print(" ")
83+
}
84+
println("|||")
85+
}
86+
}
87+
88+
89+
90+
91+
}
92+
93+
fun main() {
94+
val tree=ChrismasTree()
95+
tree.createTree()
96+
tree.actionsUser()
97+
}

0 commit comments

Comments
 (0)