Пример #1
0
 def mueve_o_fija(self, move=None):
     """
     Realiza una acción en el tablero para avanzar el juego.
     
     Parameters
     ----------
     move : Movimiento
         Si es que pasan un movimiento, se realiza el movimiento.
     """
     moves = [
         Movimiento.CAE, Movimiento.DER, Movimiento.IZQ, Movimiento.GIR
     ]
     moves_posibles = []
     for i in moves:
         if self._tablero.movimiento_valido(i):
             moves_posibles.append(i)
     fijar = self._tablero.puede_fijar()
     if fijar and move == Movimiento.FIJ:
         if self._tablero.fijar():
             self._historial.append(Movimiento.FIJ)
             return True
         return False
     if len(moves_posibles) == 0 and fijar:
         if self._tablero.fijar():
             self._historial.append(Movimiento.FIJ)
             return True
         return False
     elif len(moves_posibles) == 0:
         self._game_over = True
         return False
     elif fijar:
         if move == None:
             move = moves_posibles[get_randrange(len(moves_posibles))]
         # El 0.3 funciona bastante bien
         if get_random() < 0.3:
             if self._tablero.fijar():
                 self._historial.append(Movimiento.FIJ)
                 return True
             return False
         else:
             if self._tablero.juega_movimiento(move):
                 self._historial.append(move)
                 return True
             return False
     else:
         if move == None:
             move = moves_posibles[get_randrange(len(moves_posibles))]
         if self._tablero.juega_movimiento(move):
             self._historial.append(move)
             return True
         return False
Пример #2
0
 def siguiente_random(self, tipo=None, move=None):
     """
     Juega un movimiento para avanzar en el tiempo de juego.
     
     Parameters
     ----------
     tipo : Tipo
         Es el tipo de pieza siguiente a jugar si se necesita.
     move : Movimiento
         Es el movimiento a jugar.
     """
     if self._tablero.requiere_pieza():
         if tipo == None:
             piezas = [Tipo.I, Tipo.LG, Tipo.LS, \
                 Tipo.T, Tipo.RS, Tipo.RG, Tipo.Sq]
             tipo = piezas[get_randrange(len(piezas))]
         self._piezas_jugadas = self._piezas_jugadas + 1
         return self._tablero.set_pieza(tipo)
     moves = [
         Movimiento.CAE, Movimiento.DER, Movimiento.IZQ, Movimiento.GIR
     ]
     moves_posibles = []
     for i in moves:
         if self._tablero.movimiento_valido(i):
             moves_posibles.append(i)
     fijar = self._tablero.puede_fijar()
     if len(moves_posibles) == 0 and fijar:
         self._tablero.fijar()
         self._historial.append(Movimiento.FIJ)
         return True
     elif len(moves_posibles) == 0:
         self._game_over = True
         return False
     elif fijar:
         if move == None:
             move = moves_posibles[get_randrange(len(moves_posibles))]
         if get_random() < 0.3:
             self._tablero.fijar()
             self._historial.append(Movimiento.FIJ)
             return True
         else:
             self._historial.append(move)
             self._tablero.juega_movimiento(move)
             return True
     else:
         if move == None:
             move = moves_posibles[get_randrange(len(moves_posibles))]
         self._historial.append(move)
         self._tablero.juega_movimiento(move)
         return True
Пример #3
0
 def __random_move(self):
     moves = [Movimiento.CAE, Movimiento.DER, Movimiento.IZQ, Movimiento.GIR]
     moves_posibles = []
     for i in moves:
         if self._tetris.movimiento_valido(i):
             moves_posibles.append(i)
     if len(moves_posibles) > 0:
         return moves_posibles[get_randrange(len(moves_posibles))]
     return None
Пример #4
0
 def set_pieza(self, tipo=None):
     """
     Asigna una pieza nueva.
     
     Parameters
     ----------
     tipo : Tipo
         Es el tipo de la pieza a jugar.
     """
     if self._tablero.requiere_pieza() and not self._game_over:
         if tipo == None:
             piezas = [Tipo.I, Tipo.LG, Tipo.LS, \
                 Tipo.T, Tipo.RS, Tipo.RG, Tipo.Sq]
             tipo = piezas[get_randrange(len(piezas))]
         self._piezas_jugadas = self._piezas_jugadas + 1
         self._game_over = not self._tablero.set_pieza(tipo)
         return self._game_over
     return False
Пример #5
0
 def __random_tipo(self):
     piezas = [Tipo.I, Tipo.LG, Tipo.LS, Tipo.T, Tipo.RS, Tipo.RG, Tipo.Sq]
     return piezas[get_randrange(len(piezas))]