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