Пример #1
0
 def lanzar_dados(self):
     dado_1 = random.randint(1, 6)
     dado_2 = random.randint(1, 6)
     self.dados[0] = dado_1
     self.dados[1] = dado_2
     interfaz_network.send_command_to_all("update_dices", dado_1, dado_2)
     self.event_dados_lanzados.set()
Пример #2
0
 def realizar_intercambio(self, aceptado):
     if aceptado:
         # Da la materia ofrecida
         self.jugador_oferente_intercambio.mazo[self.materia_ofrecida]\
             -= self.cant_materia_ofrecida
         self.jugador_elegido_intercambio.mazo[self.materia_ofrecida]\
             += self.cant_materia_ofrecida
         # Quita la materia pedida
         self.jugador_oferente_intercambio.mazo[self.materia_pedida]\
             += self.cant_materia_pedida
         self.jugador_elegido_intercambio.mazo[self.materia_pedida]\
             -= self.cant_materia_pedida
         # Notifica el intercambio
         msg = f"Se ha realizado un intercambio entre\
             {self.jugador_oferente_intercambio.nombre} \
                 y {self.jugador_elegido_intercambio.nombre}"
         interfaz_network.send_command_to_all("pop_up", msg)
         # setea none todos los datos del intercambio
         self.jugador_oferente_intercambio = None
         self.jugador_elegido_intercambio = None
         self.materia_ofrecida = None
         self.materia_pedida = None
         self.cant_materia_ofrecida = None
         self.cant_materia_pedida = None
     else:
         msg = "Se ha rechazado el intercambio"
         interfaz_network.send_command(self.jugador_oferente_intercambio.nombre,
                                       "pop_up", msg)
     self.event_accion_realizada.set()
Пример #3
0
    def __setitem__(self, key, value):
        keys = {"madera", "arcilla", "trigo"}
        if key not in keys:
            raise KeyError("No existe la materia prima dada")

        #print(f"Enviando Comando: {key}: {value}: {self.usuario}")
        interfaz_network.send_command_to_all("update_resource", self.usuario, key, value)
        super().__setitem__(key, value)
Пример #4
0
 def comprar_choza(self, id_nodo):
     choza = self.banco.comprar_choza(self.jugador_actual)
     if choza:
         if self.mapa.anadir_construccion(choza, id_nodo):  # Chequea los adyacentes
             msg = f"{self.jugador_actual.nombre} ha construido una choza"
             interfaz_network.send_command_to_all("pop_up", msg)
             self.event_accion_realizada.set()
         else:  # Si no se pudo construir se activa la interfaz
             interfaz_network.send_command(self.jugador_actual.nombre, "enable_interface")
     else:  # Si no se pudo comprar se activa la itnerfaz
         interfaz_network.send_command(self.jugador_actual.nombre, "enable_interface")
Пример #5
0
 def construccion(self, valor):
     if valor is not None:
         self.__construccion = valor
         puntos = valor.puntos
         self.usuario.puntos += puntos
         interfaz_network.send_command_to_all("add_building", self.id,
                                              self.construccion.nombre,
                                              self.usuario.nombre)
     else:
         self.usuario.puntos -= self.construccion.puntos
         print(f"Enviar comando eliminar construccion, id: {self.id}")
         self.__construccion = valor
Пример #6
0
 def poner_ladron(self, id_hexagono):
     if self.mapa.hexagonos[id_hexagono].ladron == True:
         msg = "Posicion Invalida, ya hay un ladron en ese Hexagono"
         interfaz_network.send_command(self.jugador_actual.nombre, "pop_up", msg)
     else:
         print(f"Poniendo Ladron en id: {id_hexagono}")
         self.mapa.hexagonos[id_hexagono].ladron = True
         msg = f"{self.jugador_actual.nombre} ha usado el ladron"
         interfaz_network.send_command_to_all("put_thief", id_hexagono)
         interfaz_network.send_command_to_all("pop_up", msg)
         interfaz_network.send_command(self.jugador_actual.nombre, "steal_cards")
         pass
Пример #7
0
 def comenzar_turno(self):
     self.jugador_actual = self.cola_turnos.popleft()
     interfaz_network.send_command_to_all("update_current_player", self.jugador_actual.nombre)
     interfaz_network.send_command(self.jugador_actual.nombre, "enable_dice_throw")
     # Espera a que se lanzen los dados y resetea el evento
     self.event_dados_lanzados.wait()
     self.event_dados_lanzados.clear()
     # Reparte las cartas y lo deja jugar
     if self.suma_dados() == 7:
         self.quitar_materias_primas()
         interfaz_network.send_command(self.jugador_actual.nombre, "enable_thief")
     else:
         self.banco.repartir_cartas(self.mapa, self.suma_dados())
     interfaz_network.send_command(self.jugador_actual.nombre, "enable_interface")
     self.event_accion_realizada.wait()
     self.event_accion_realizada.clear()
     self.chequear_ganador(self.jugador_actual)
     self.cola_turnos.append(self.jugador_actual)
Пример #8
0
 def puntos(self, valor):
     self.__puntos = valor
     interfaz_network.send_command_to_all("update_points", self.nombre,
                                          valor)
Пример #9
0
 def nombre(self, valor):
     self.__nombre = valor
     interfaz_network.send_command_to_all("load_user_name", self.nombre)
     print(f"Enviar Comando Fijar nombre usuario {self.nombre}")
Пример #10
0
 def init_nodo(self):
     interfaz_network.send_command_to_all("del_construccion", self.id)
Пример #11
0
 def num_ficha(self, valor):
     self.__num_ficha = valor
     interfaz_network.send_command_to_all("load_num_ficha", self.id,
                                          self.num_ficha)
Пример #12
0
 def materia_prima(self, valor):
     self.__materia_prima = valor
     interfaz_network.send_command_to_all("load_hexagon_resource", self.id,
                                          self.materia_prima)
Пример #13
0
 def fase_juego(self):
     interfaz_network.send_command_to_all("close_wait_window")
     interfaz_network.send_command_to_all("open_game_window")
     while not self.ganador:
         self.comenzar_turno()
     print("TERMINANDO PARTIDA")
Пример #14
0
 def enviar_chat(self, nombre, texto):
     interfaz_network.send_command_to_all("add_chat_line", nombre, texto)
Пример #15
0
 def fase_termino(self):
     lista_nombres_puntos = [(usuario.nombre, usuario.puntos) for usuario in self.usuarios]
     lista_nombres_puntos.sort(key=lambda tupla: tupla[1], reverse=True)
     interfaz_network.send_command_to_all("update_winner_window", lista_nombres_puntos)
     interfaz_network.send_command_to_all("close_game_window")
     interfaz_network.send_command_to_all("open_winner_window")