-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathexample.wlk
More file actions
101 lines (82 loc) · 2.46 KB
/
Copy pathexample.wlk
File metadata and controls
101 lines (82 loc) · 2.46 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
89
90
91
92
93
94
95
96
97
98
99
100
101
class Equipo {
const jugadores = []
//method potencial() = self.valoracion()
method potencial() = self.valoracion() * self.potencialExtra()
method valoracion() = jugadores.filter{j=>j.cotizacion()>1}.sum{j=>j.cotizacion()}
method potencialExtra() = 1
method seVaElDeMayorCotizacion() {
jugadores.remove(self.elDeMayorCotizacion())
}
method elDeMayorCotizacion() = jugadores.max{j=>j.cotizacion()}
}
class EquipoConmebol inherits Equipo{
var estiloHinchada = entusiasta
var property popularidad
//override method potencial() = super() * estiloHinchada.motivacion(self)
override method potencialExtra() = estiloHinchada.motivacion(self)
method aumentoPublico(cantidad) {
popularidad = popularidad + cantidad
estiloHinchada = estiloHinchada.masPublico()
}
}
object entusiasta{
method motivacion(equipo) = equipo.popularidad() * equipo.popularidad()
method masPublico() = self
}
object pechoFrio{
method motivacion(equipo) = (equipo.popularidad() / 10).max(1)
method masPublico() = entusiasta
}
object mercenaria{
method motivacion(equipo) = equipo.valoracion() * 0.01
method masPublico() = pechoFrio
}
class EquipoEuropeo inherits Equipo{
var champions = 0
//override method potencial() = super() * champions
override method potencialExtra() = champions
}
class EquipoEEUU inherits Equipo{
const ciudad
//override method potencial() = super() * ciudad.poblacion()
override method potencialExtra() = ciudad.poblacion()
}
class Ciudad {
var property poblacion
}
class Jugador{
var monto
const nombre
method cotizacion() = monto * nombre.length()
}
class JugadorPremiado inherits Jugador{
var premio
override method cotizacion() = super() + premio
}
class Partido{
const equipo1
const equipo2
method cuantosPuntosHizo(equipo) {
const otro = self.adversario(equipo)
if (equipo.potencial() > otro.potencial())
return 3
else if (equipo.potencial() == otro.potencial())
return 1
else
return 0
}
method adversario(equipo) = if (equipo == equipo1) equipo2 else equipo1
method jugo(equipo) = equipo == equipo1 or equipo == equipo2
}
class Grupo {
const partidos= []
const equipos = []
method crearPartido(e1, e2){
const p = new Partido(equipo1 = e1, equipo2 = e2)
partidos.add(p)
}
method puntosDe(equipo) = partidos.filter{p=>p.jugo(equipo)}.sum{p=>p.cuantosPuntosHizo(equipo)}
method guerraComercial(){
equipos.forEach{e=>e.seVaElDeMayorCotizacion()}
}
}