Example #1
0
	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())
Example #2
0
    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
Example #3
0
    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)))
Example #4
0
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
Example #5
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()
Example #6
0
 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)]
Example #8
0
    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