-
Notifications
You must be signed in to change notification settings - Fork 0
/
casillas.py
169 lines (138 loc) · 6.14 KB
/
casillas.py
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
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
from random import randint
from fuzzy import comprar_calle_fuzzy, comprar_estaciones_fuzzy
class Casilla:
nombre = None
id = None
def __init__(self, nombre, id):
self.nombre = nombre
self.id = id
def activarEfecto():
pass
def activarEfectoIA():
pass
def activarEfecto_Fuzzy():
pass
class Inicio(Casilla):
def __init__(self, nombre, id):
self.nombre = nombre
self.id = id
def activarEfecto(self, partida, id):
print("Estas en la casilla de inicio.")
def activarEfecto_Fuzzy(self, nombre, id):
print("Estas en la casilla de inicio.")
class Calle(Casilla):
def __init__(self, nombre, id, barrio, precio, alquiler):
self.nombre = nombre
self.id = id
self.barrio = barrio
self.precio = precio
self.alquiler = alquiler
self.propietario = None
self.nCasas = 0
self.precioCasa = precio/2
def activarEfecto(self, partida, id):
if( self.propietario == None ):
print("Esta calle no tiene dueño. La compras por %i dolaritos? (Y/N)" % self.precio)
accion = input()
if( accion == 'Y'):
partida.adquirirCalle(self.id, id)
else:
print("Has decidido no comprar la calle...")
elif( self.propietario != id ):
print("Esta calle tiene dueño! Tienes que pagar renta.")
cantidad = self.alquiler[self.nCasas]
partida.pagarAlquiler(self.propietario, id, cantidad)
def activarEfectoIA(self, partida, id):
if self.propietario is None:
partida.adquirirCalle(self.id, id)
elif self.propietario != id:
print("Esta calle tiene dueño! Tienes que pagar renta.")
cantidad = self.alquiler[self.nCasas]
# Ensure that propietario ID is passed, not the object
partida.pagarAlquiler(self.propietario.id if hasattr(self.propietario, 'id') else self.propietario, id, cantidad)
def activarEfecto_Fuzzy(self, partida, id):
if( self.propietario == None ):
decisioncalle = comprar_calle_fuzzy(partida.jugadores[id].dinero, partida.jugadores[id].nCalles, partida.jugadores[id].nEstaciones)
accion1 = decisioncalle
if( accion1 == 1):
partida.adquirirCalle(self.id, id)
else:
print("Fuzzy ha decidido no comprar la calle...")
elif( self.propietario != id):
print("Esta calle tiene dueño! Tienes que pagar renta.")
cantidad = self.alquiler[self.nCasas]
partida.pagarAlquiler(self.propietario, id, cantidad)
class Estacion(Casilla):
precio = 400
alquiler = [50, 100, 200, 400]
propietario = None
def activarEfecto(self, partida, id):
if( self.propietario == None ):
print("Esta estacion no tiene dueño. La compras por %i dolaritos? (Y/N)" % self.precio)
accion = input()
if( accion == 'Y'):
partida.adquirirEstacion(self.id, id)
else:
print("Has decidido no comprar la estacion...")
elif( self.propietario != id):
print("Esta estacion tiene dueño. Tienes que pagar una renta.")
nEstaciones = len(partida.jugadores[self.propietario].propiedades.estaciones)
cantidad = self.alquiler[nEstaciones-1]
partida.pagarAlquiler(self.propietario, id, cantidad)
else:
print("Estas en una propiedad que te pertenece...")
def activarEfectoIA(self, partida, id):
if( self.propietario == None ):
partida.adquirirEstacion(self.id, id)
elif( self.propietario != id):
print("Esta estacion tiene dueño. Tienes que pagar una renta.")
nEstaciones = len(partida.jugadores[self.propietario].propiedades.estaciones)
cantidad = self.alquiler[nEstaciones-1]
partida.pagarAlquiler(self.propietario, id, cantidad)
else:
print("Estas en una propiedad que te pertenece...")
def activarEfecto_Fuzzy(self, partida, id):
if( self.propietario == None ):
decisionest = comprar_estaciones_fuzzy(partida.jugadores[id].dinero, partida.jugadores[id].nCalles, partida.jugadores[id].nEstaciones)
accion2 = decisionest
if( accion2 == 1):
partida.adquirirEstacion(self.id, id)
else:
print("Fuzyy ha decidido no comprar la estacion...")
elif( self.propietario != id):
print("Esta estacion tiene dueño. Tienes que pagar una renta.")
nEstaciones = len(partida.jugadores[self.propietario].propiedades.estaciones)
cantidad = self.alquiler[nEstaciones-1]
partida.pagarAlquiler(self.propietario, id, cantidad)
else:
print("Estas en una propiedad que te pertenece...")
class Suerte(Casilla):
def activarEfecto(self, partida, id):
cantidad = 100*randint(-5,5)
print("Has caido en una casilla de suerte!")
partida.actualizarDinero(id,cantidad)
def activarEfectoIA(self, partida, id):
cantidad = 100*randint(-5,5)
print("Has caido en una casilla de suerte!")
partida.actualizarDinero(id,cantidad)
def activarEfecto_Fuzzy(self, partida, id):
cantidad = 100*randint(-5,5)
print("Has caido en una casilla de suerte!")
partida.actualizarDinero(id,cantidad)
class AlaCarcel(Casilla):
def activarEfecto(self, partida, id):
partida.encarcelarJugador(id)
print("A la carcel!")
def activarEfectoIA(self, partida, id):
partida.encarcelarJugador(id)
print("A la carcel!")
def activarEfecto_Fuzzy(self, partida, id):
partida.encarcelarJugador(id)
print("A la carcel!")
class Carcel(Casilla):
def activarEfecto(self, partida, id):
print("Has caido en la cárcel, pero solo de visita")
def activarEfectoIA(self, partida, id):
print("Has caido en la cárcel, pero solo de visita")
def activarEfecto_Fuzzy(self, partida, id):
print("Has caido en la cárcel, pero solo de visita")