def CriarFicha(self, nome, raca, classe, nivel, vida, ca, deslc, antec, forc, dex, cons, intl, sab, car): self._conn.send(b'ficha') resposta = self._con.recv(2048) print(resposta.decode()) F = Ficha(nome, raca, classe, nivel, vida, ca, deslc, antec, forc, dex, cons, intl, sab, car) self._conn.send(str.encode(json.dumps(F, cls=MyEncoder))) resposta = self._conn.recv(2048) print(resposta.decode())
def __crearDominoes(self): a, b, totalFichas, fichas, self.__fichasEnMesa= 0, 0, 0, [], [] while totalFichas < 28: fichas.append(Ficha(a,b)) if a == b: a += 1 b = 0 else: b += 1 totalFichas += 1 self.__fichasEnMesa = fichas
def generar(self): PuzzleBase.generar(self) #divido en rectangulos self.width = int(self.pixelesImg[0] / self.size[0]) self.height = int(self.pixelesImg[1] / self.size[1]) rects = [] #rectangulos self.imgFichas = [] #rectangulos recortados posAnt = 0 for x in xrange(self.size[0]): for y in xrange(self.size[1]): r = (x * self.width, y * self.height, self.width, self.height) rects.append(r) #recorto la imagen en esos rectangulos img = self.imagen.subsurface(r) self.imgFichas.append(img) #genero la ficha self.fichas.add( Ficha((x, y), (0, 0, self.width, self.height), image=img)) #genero el tablero y lo pongo en posicion con sus id self.tablero.add(Ficha((x,y), \ (r[0] + PuzzleBase.POSICION_IMG[0], r[1] + PuzzleBase.POSICION_IMG[1]) + r[2:], color=(100,100,100)))
from Ficha import Ficha import os import copy #Variables: #Tablero predeterminado para la partida. tablero = [[0, Ficha(0, "A2", 0), 0, Ficha(0, "A4", 0), 0, Ficha(0, "A6", 0), 0, Ficha(0, "A8", 0)], [Ficha(0, "B1", 0), 0, Ficha(0, "B3", 0), 0, Ficha(0, "B5", 0), 0, Ficha(0, "B7", 0), 0], [0, Ficha(0, "C2", 0), 0, Ficha(0, "C4", 0), 0, Ficha(0, "C6", 0), 0, Ficha(0, "C8", 0)], [0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0], [Ficha(1, "F1", 0), 0, Ficha(1, "F3", 0), 0, Ficha(1, "F5", 0), 0, Ficha(1, "F7", 0), 0], [0, Ficha(1, "G2", 0), 0, Ficha(1, "G4", 0), 0, Ficha(1, "G6", 0), 0, Ficha(1, "G8", 0)], [Ficha(1, "H1", 0), 0, Ficha(1, "H3", 0), 0, Ficha(1, "H5", 0), 0, Ficha(1, "H7", 0), 0]] #Indica si el juego debe continuar o no seguir = True #Esta variable indica si se mueven las fichas blancas o las negras (Blancas = True , Negras =False) turnoColor hace lo mismo, solo que con 0 y 1 respectivamente turno = "Negras" turnoColor = 0
def damas(): #asigna variables turno = Ficha.BLANCA seleccionado = False fichaSel = None bloqueo = False #crea la ventana de juego pygame.init() ventana = pygame.display.set_mode((ancho,alto)) pygame.display.set_caption("Damas") #Coloca el icono del juego icon = pygame.image.load("../Resources/Icono.png") pygame.display.set_icon(icon) #carga imagen de fono imagenFondo = pygame.image.load("../Resources/Fondo.jpg") ventana.blit(imagenFondo,(0,0)) #crea el tablero de juego tablero = Tablero() tablero.dibujar(ventana) tablero.dibujar_fichas(ventana) #Botones y HUD imagenFondoBot = pygame.image.load("../Resources/FondoBotones.png") ventana.blit(imagenFondoBot,(750,0)) #Interfaz fichaTurno = Ficha(2,880,440) #Ficha de turno ventana.blit(fichaTurno.get_imagen(), fichaTurno.get_rect()) #dibujo la ficha de turno marcador(ventana,tablero) #Coloca el marcador #establece el modo de juego modo = un_jugador #establece si registra los entrenamientos grabar = False #empieza a registrar los movimientos tablero.entradas_rna() print "Turno: Fichas Blancas" while True: #recoge los evenetos del juego for evento in pygame.event.get(): #eventos if evento.type == QUIT: pygame.quit() sys.exit() elif evento.type == pygame.KEYDOWN: tecla = pygame.key.get_pressed() if tecla[K_r]: print "Reincio" tablero.llenar() tablero.dibujar(ventana) tablero.dibujar_fichas(ventana) ventana.blit(imagenFondoBot,(750,0)) turno = Ficha.BLANCA fichaTurno.cambiar_imagen(2) ventana.blit(fichaTurno.get_imagen(), fichaTurno.get_rect()) marcador(ventana,tablero) tablero.entradas_rna() elif tecla[K_1]: print "Cambiado a modo: Un Jugador" modo = un_jugador elif tecla[K_2]: print "Cambiado a modo: Dos Jugadores" modo = dos_jugadores elif tecla[K_g]: if grabar == True: grabar = False print "Salidas de Entrenamiento: Apagadas" else : grabar = True print "Salidas de Entrenamiento: Encendidas" #Evento cuando se presiona el boton del mouse if evento.type == pygame.MOUSEBUTTONUP: #Obtiene la posicion del puntero posX, posY = pygame.mouse.get_pos() #Busqueda en las fichas de juego fichas = tablero.cuadricula for i in fichas: for j in i: if j != 0: if j.get_rect().collidepoint(posX, posY): print "Ficha de tipo: ", j.get_jugador() if j.get_color() == Ficha.LIBRE: print tablero.comprobar_espacio(j) #Si selecciona una ficha del color que es el turno if (j.get_color() == turno) & (bloqueo == False): #si la ficha ya estaba seleccionada se deselecciona if j == fichaSel: tablero.dibujar(ventana) tablero.dibujar_fichas(ventana) fichaSel = None seleccionado = False #la ficha es seleccionada solo si puede moverse elif tablero.comprobar_mov(j): seleccionar_ficha(ventana,tablero,j) fichaSel = j seleccionado = True #Si se selecciono una casilla libre elif j.get_color() == Ficha.LIBRE: if seleccionado == True: if bloqueo == True: ocurrio_mov = tablero.mover_comiendo(fichaSel,j) if ocurrio_mov: tablero.registrar_salida(fichaSel, j) else: ocurrio_mov, tipo_mov = tablero.mover(fichaSel, j) if ocurrio_mov: tablero.dibujar(ventana) tablero.dibujar_fichas(ventana) #verifica si la ficha aun puede seguir comiendo if (tablero.comprobar_sig_com(fichaSel)) & (tipo_mov == 0): #print j.get_jugador() seleccionar_ficha(ventana,tablero,fichaSel) bloqueo = True #ventana de menu ventana.blit(imagenFondoBot,(750,0)) #Ficha de turno ventana.blit(fichaTurno.get_imagen(), fichaTurno.get_rect()) #Actualiza el marcador marcador(ventana,tablero) #Salidas para entrenamiento if grabar: tablero.escribir_salida_rna() tablero.entradas_rna() #Si la ficha ya no puede moverse mas else: fichaSel = None seleccionado = False #ventana de menu ventana.blit(imagenFondoBot,(750,0)) #Actualiza el marcador marcador(ventana,tablero) tablero.convertir_dama() tablero.dibujar_fichas(ventana) #Determina si existe victoria victoria(ventana,tablero) bloqueo = False if modo == dos_jugadores: #Cambia la imagen de turno turno = cambiar_turno(turno,fichaTurno,ventana,tablero,grabar) elif modo == un_jugador: movimiento_ia(ventana,fichaTurno,tablero) pygame.display.update()
def crearFicha(self, dirImagen, nombre): self.miFicha.append(Ficha(dirImagen, nombre)) self.cantFichas += 1
def __init__(self): c = 8 r = 8 self.__casillas = [[Ficha(i, j).Representacion for j in range(c)] for i in range(r)] self.__Raw = [[Ficha(i, j) for j in range(c)] for i in range(r)]
def run(self): '''Escutar as solicitações do cliente''' U = Usuario() F = Ficha() S = Sala() R = RolagemdeDados() with self._conn as conn: while True: dados = conn.recv(2048) opc = dados.decode() if opc == "cadastrar": conn.send(b'Esperando dados...') prods = conn.recv(2048) U = json.loads(prods.decode(),object_hook=Usuario.MyEncoder.decode) U.Cadastrar(U) conn.send(b'Usuario Cadastrado [OK]') elif opc == "logar": conn.send(b'Esperando dados...') prods = conn.recv(2048) email = json.loads(prods.decode(),object_hook=Email.MyEncoder.decode) senha = json.loads(prods.decode(),object_hook=Senha.MyEncoder.decode) U.Logar(email,senha) conn.send(b'Usuario Logado [OK]') elif opc == "ficha": conn.send(b'Esperando dados...') prods = conn.recv(2048) F = json.loads(prods.decode(),object_hook=Ficha.MyEncoder.decode) F.Criar(F) conn.send(b'Ficha Criada [OK]') elif opc == "abrir ficha": conn.send(b'Abrindo ficha') prods = conn.recv(2048) F.Abrir() conn.send(b'Ficha Aberta [OK]') elif opc == "rolar dados": conn.send(b'Esperando dados...') prods = conn.recv(2048) ND = json.loads(prods.decode(),object_hook=ND.MyEncoder.decode) DPR = json.loads(prods.decode(),object_hook=DPR.MyEncoder.decode) print(R.RolarDados(ND,DPR)) conn.send(b'Dado(s) Rolado(s) [OK]') elif opc == "criar sala": conn.send(b'Esperando dados...') prods = conn.recv(2048) S = json.loads(prods.decode(),object_hook=Sala.MyEncoder.decode) S.Criar(S) conn.send(b'Sala Criada [OK]') elif opc == "terminar": print('Fim do cliente') break