def test_cartas_valen_lo_mismo(self): """ Comparamos que dos cartas con la misma figura valen igual """ carta1 = Carta(palo=CLUB, figura=5) carta2 = Carta(palo=HEART, figura=5) self.assertTrue(carta1 == carta2)
def carica_mazzo(self, path): '''Viene preso in entrata il path del file di testo contenente il mazzo e ,tramite l'ausilio della funzione is_carta, viene creato un oggetto mazzo. Viene comunicato poi all'utente se il mazzo è utilizzabile (non ci sono nè duplicati nè errori di qualsiasi genere) o meno.''' #lettura file di testo with open(path, 'r') as infile: contenuto = infile.readlines() for elem in contenuto: carta = Carta() #check se la riga può diventare una carta if carta.is_carta(elem): flag = True for i in self.lista_carte: if i.valore == carta.valore and i.seme == carta.seme: flag = False #se la carta è buona e non duplicata, la includo nel mazzo if flag == True: self.lista_carte.append( carta) #Carta(elem[1],elem[0])) #comunicazione all'utente sulla natura del mazzo if len(self.lista_carte) != 40: print('il mazzo non è completo') return False else: print('il mazzo è completo') return True
def test_carta_es_mayor_que_otra(self): """ Comparamos que el valor de una carta es menor que el valor de otra """ carta1 = Carta(palo=HEART, figura=5) carta2 = Carta(palo=HEART, figura=3) self.assertTrue(carta1 > carta2)
def test_2_cartas_son_distintas(self): """ Comparamos si dadas 2 cartas el programa reconoce que son distintas """ carta1 = Carta(palo=HEART, figura="K") carta2 = Carta(palo=HEART, figura="J") self.assertTrue(carta1 != carta2)
def step(context, mano): aux = mano.split(";") cartas = [] for t in aux: valor, pinta = t[1:-1].split(",") cartas.append(Carta(valor, pinta)) context.mano = Mano(cartas)
def test_numero_es_valido(self): """ Las carta del poker pueden tener un numero comprendido entre el 2 y el 10 """ carta = Carta(palo=HEART, figura=3) self.assertTrue(carta.palo, HEART)
def genera_mazzo_ordinato(self): '''Viene generato un mazzo ordinato (1-2-3...10B, 1-2-3...10C, ecc...).''' semi = ['B', 'C', 'D', 'S'] for seme in semi: for valore in range(1, 11, 1): self.lista_carte.append(Carta(seme, valore))
def test_numero_no_es_valido(self): """ Las carta del poker pueden tener un numero comprendido entre el 2 y el 10 """ ocurre_excepcion = False try: carta = Carta(palo=HEART, figura=1) except FiguraCartaError as ex: ocurre_excepcion = True self.assertTrue(ocurre_excepcion) try: carta = Carta(palo=HEART, figura=12) except FiguraCartaError as ex: ocurre_excepcion = True self.assertTrue(ocurre_excepcion)
class Testcarta(unittest.TestCase): def setUp(self): self.testCarta = Carta() def testNumeroDeFilasCorrectas(self): self.assertEquals(3, self.testCarta.filas()) def testLimiteInferiorYSuperiorPrimeraColumna(self): self.assertTrue(self.testCarta.randomNumeroParaColumna(0) > 0) self.assertTrue(self.testCarta.randomNumeroParaColumna(0) <= 9) def testLimiteInferiorYSuperiorSegundaColumna(self): self.assertTrue(self.testCarta.randomNumeroParaColumna(1) >= 10) self.assertTrue(self.testCarta.randomNumeroParaColumna(1) <= 19) def testLimiteInferiorYSuperiorTerceraColumna(self): self.assertTrue(self.testCarta.randomNumeroParaColumna(2) >= 20) self.assertTrue(self.testCarta.randomNumeroParaColumna(2) <= 29) def testLimiteInferiorYSuperiorCuartaColumna(self): self.assertTrue(self.testCarta.randomNumeroParaColumna(3) >= 30) self.assertTrue(self.testCarta.randomNumeroParaColumna(3) <= 39) def testLimiteInferiorYSuperiorQuintaColumna(self): self.assertTrue(self.testCarta.randomNumeroParaColumna(4) >= 40) self.assertTrue(self.testCarta.randomNumeroParaColumna(4) <= 49) def testLimiteInferiorYSuperiorSextaColumna(self): self.assertTrue(self.testCarta.randomNumeroParaColumna(5) >= 50) self.assertTrue(self.testCarta.randomNumeroParaColumna(5) <= 59) def testLimiteInferiorYSuperiorSeptimaColumna(self): self.assertTrue(self.testCarta.randomNumeroParaColumna(6) >= 60) self.assertTrue(self.testCarta.randomNumeroParaColumna(6) <= 69) def testLimiteInferiorYSuperiorOctavaColumna(self): self.assertTrue(self.testCarta.randomNumeroParaColumna(7) >= 70) self.assertTrue(self.testCarta.randomNumeroParaColumna(7) <= 79) def testLimiteInferiorYSuperiorNovenaColumna(self): self.assertTrue(self.testCarta.randomNumeroParaColumna(8) >= 80) self.assertTrue(self.testCarta.randomNumeroParaColumna(8) <= 89) def tearDown(self): del self.testCarta
def crear_cartas_baraja(self): """ La baraja en el poker tiene 52 cartas. 13 cartas por cada palo """ for palo in PALOS: for cada_figura in FIGURAS: carta = Carta(palo=palo, figura=cada_figura) self.cartas.append(carta)
def test_tipo_es_valido(self): """ Las cartas en el poker solo pueden ser de 4 tipos: - Corazones - Diamantes - Treboles - Picas """ carta = Carta(palo=DIAMONDS, figura=5) self.assertTrue(carta.palo, DIAMONDS)
def test_buscar_carta(self): """ Buscamos una carta en la baraja """ # Creamos una baraja nueva baraja = Baraja() carta = Carta(palo=HEART, figura=3) carta_buscada = baraja.buscar_carta(carta) self.assertTrue(carta_buscada.palo == HEART, carta_buscada.figura == 3) self.assertTrue(baraja.get_numero_de_cartas() == 52)
def validacion_cruzada_scrapping(dicc_fireball, dicc_tcg_player, dicc_magic_info): ''' Una vez obtenida toda la informacion este metodo la combina dicc_fireball: nombre : nota dicc_tcg_player: nombre : [coste, rareza, coste_medio, nombre_original] dicc_magic_info: nombre : [tipo, texto] ''' array_cartas = [] cartas_error = open("errores.txt", "w") ''' print(sorted(dicc_fireball.keys())) print('------------\n') print(sorted(dicc_tcg_player.keys())) print('------------\n') print(sorted(dicc_magic_info.keys())) ''' for key in dicc_magic_info: try: elementostcg = dicc_tcg_player[limpia_nombre(key)] elementosinfo = dicc_magic_info[limpia_nombre(key)] if elementostcg[0] == '': continue #hay que eliminar algunos caracteres molestos nombre_original = elementostcg[3].replace("'", "''") costemedio = elementostcg[2].replace("$", '') rareza = elementostcg[1].replace("[", "") rareza = rareza.replace("]", "") tipo = elementosinfo[0].replace("—", "-") texto = elementosinfo[1].replace("'", "") texto = texto.replace("—", "-") texto = texto.replace("−", "-") texto = texto.replace("•", "") if key not in dicc_fireball: nf = 0 else: nf = dicc_fireball[key] # constructor carta cartaux = Carta(nombre=key, nombre_original=nombre_original, coleccion='INS', color=calcular_color(elementostcg[0]), tipo=tipo, coste_mana=elementostcg[0], rareza=rareza, texto=texto, nota_fireball=nf, coste_medio=costemedio) array_cartas.append(cartaux) except: cartas_error.write(key + "\n") cartas_error.close() return array_cartas
def test_eliminar_carta(self): """ Creamos una baraja nueva. Buscamos una carta, la robamos y comprobamos que esa carta ya no esta en la baraja y que la baraja tiene una carta menos """ # Creamos una baraja nueva baraja = Baraja() carta = Carta(palo=HEART, figura="J") carta_robada = baraja.eliminar_carta_de_baraja(carta) self.assertTrue(carta_robada.palo == HEART, carta_robada.figura == "J") self.assertTrue(baraja.get_numero_de_cartas() == 51)
def baraja_completa(self): self.cartas = list() # Estilo Python for palo in Carta.palos: # HACK: Se usa una porción de los valores para eliminar el primero for valor in Carta.valores[1:]: self.cartas.append(Carta(valor, palo)) # Estilo C++ #for i in range(len(palos)): # for j in range(1, len(valores)): # self.cartas.append(Carta(j,i)) self.mezcla()
def __init__(self): self.key() #Criacao das Cartas for c in dbs.query(db.Carta): self.cartas.append(Carta(c.nome, c.ataque, c.defesa, c.classe, c.pattern, c.egg, c.tamanho,c.ativo)) #Configuracao do Panda base.disableMouse() #camera.setPosHpr(14.5, -15.4, 14, 45, -14, 0) #base.camera.setPos(10,-50,10) base.setBackgroundColor( BLACK ) #Busca Nome do Jogador self.Nome()
def test_tipo_no_es_valido(self): """ Las cartas en el poker solo pueden ser de 4 tipos: - Corazones - Diamantes - Treboles - Picas """ ocurre_excepcion = False try: carta = Carta(palo="OROS", figura=2) except TipoCartaError as ex: ocurre_excepcion = True self.assertTrue(ocurre_excepcion)
def linea_cursor_a_carta(lineacursor): ''' Esta funcion convierte una linea recuperada del cursor en un objeto del tipo carta ''' return Carta( nombre = lineacursor[0], nombre_original = lineacursor[1], coleccion = lineacursor[2], color = lineacursor[3], coste_mana = lineacursor[4], rareza = lineacursor[5], nota_fireball = lineacursor[6], coste_medio = lineacursor[7], tipo = lineacursor[8], texto = lineacursor[9] )
def test_cartas_estan_ordenadas_correctamente(self): """ Dada una serie de cartas al ordenarlas se tienen que ordenar de forma correcta """ lista_cartas = [ Carta(palo=CLUB, figura=5), Carta(palo=HEART, figura=5), Carta(palo=DIAMONDS, figura=2), Carta(palo=CLUB, figura="A"), Carta(palo=CLUB, figura="K"), Carta(palo=SPADE, figura="J") ] lista_cartas.sort() ultima_carta = lista_cartas[-1] self.assertTrue(ultima_carta.palo == CLUB, ultima_carta.figura == "A")
def __init__(self, jugadores=["Mona", "Mono"]): # Reordenamos jugadores para evitar que el primero pierda más random.shuffle(jugadores) # Crea mazo completo y retira Rey de Copas self.mazo = Mazo() self.mazo.dame(Carta("Rey", "Copas")) cartas_mazo = len(self.mazo) print(len(self.mazo)) # Crea las listas de jugadores y manos self.jugadores = jugadores self.manos = [] for nombre in jugadores: self.manos.append(Mazo([])) # Reparte las cartas for i in range(len(jugadores)): self.manos[i] = self.mazo.saca(cartas_mazo // len(self.jugadores)) resto_cartas = len(self.mazo) # Reparte el resto de cartas for i in range(resto_cartas): self.manos[i].mete(self.mazo.saca(1)) self.juego()
def crear_mazo(mazos=1, palos=4): """Devuelve una PilaCartas con las cartas boca abajo y mezcladas. Cada mazo de los mazos tiene 52 cartas, y puede ser completado con 1, 2 o 4 palos. En caso de que estén los 4 palos el mazo se conformará con la serie del 1 al 13 para cada uno de ellos, en caso de ser sólo 2 palos serán 2 veces la serie 1 al 13 para dos palos del mismo color y en caso de ser 1 sólo palo será 4 veces la serie 1 al 13 para ese palo.""" lista_mazo = [] palo = random.sample([PICAS, CORAZONES, DIAMANTES, TREBOLES], palos) for i in range(mazos): mazo = [] while len(mazo) != 52: for j in palo: for i in range(1, 14): mazo.append(Carta(i, j)) lista_mazo.extend(mazo) random.shuffle(lista_mazo) mazo = PilaCartas() for carta in lista_mazo: mazo.apilar(carta, forzar=True) return mazo
def saca(self, n=1): resultado = list() for i in range(n): if len(self.cartas) == 0: break resultado.append(self.cartas.pop()) return Mazo(resultado) def dame(self, carta): if carta in self.cartas: self.cartas.remove(carta) return True return False def mete(self, mazo): self.cartas.extend(mazo.cartas) if __name__ == "__main__": m1 = Mazo() if m1.dame(Carta("Rey", "Copas")): print("Sacado/a Rey Copas") if not m1.dame(Carta("Rey", "Copas")): print("No había Rey Copas") m2 = m1.saca(10) m3 = m1.saca(10) m2.mete(m3) print(m2) m2.ordena() print(m2)
from carta import Carta class Baralho: __slots__ = ["cartas"] def __init__(self, cartas): self.cartas = cartas def embaralhar(self): print("Embaralhar") def dar_carta(self): print("Dar as cartas") carta = Carta("as", "10") baralho = Baralho([carta]) baralho.embaralhar() baralho.dar_carta()
def test_mano_es_suited(self): carta1 = Carta(palo=HEART, figura="Q") carta2 = Carta(palo=HEART, figura=5) mano = Mano(carta1, carta2) self.assertTrue(mano.es_suited())
def test_no_es_pareja(self): carta1 = Carta(palo=HEART, figura="A") carta2 = Carta(palo=HEART, figura="K") mano = Mano(carta1, carta2) self.assertFalse(mano.es_pareja())
try: nomeJogador = input("Jogador, digite seu nome: ") if " " not in nomeJogador and len(nomeJogador) > 0 and nomeJogador != "cpu": definindo = not definindo else: print("Nome inválido, contém espaços ou é muito curto") except: print("Nome inválido!") return nomeJogador if __name__ == "__main__": #nomeJogador = setNomeJogador() nomeJogador = "jogador_eu" #Definição dos jogadores jogador1 = Jogador(nomeJogador) jogador2 = Jogador("CPU") #Definições das informações das cartas nomesNaipes = ["ouros", "espadas", "copas", "paus"] pesosNaipes = [1, 2, 3, 4] valorCartas = ["4", "5", "6", "7", "Q", "J", "K", "A", "2", "3"] pesosCartas = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] #Definição das cartas naipes = [Naipe(nomesNaipes[i], pesosNaipes[i]) for i in range(len(nomesNaipes))] cartas = [Carta(valorCartas[i], j, pesosCartas[i]) for i in range(len(valorCartas)) for j in naipes] #Definição do jogo truco = Jogo(cartas, naipes, jogador1, jogador2) print("O jogador \"" + truco.joga() + "\" ganhou a partida!")
else: print("Erro") limpar() print(f"\n>> {jogador1.nome} jogou a carta: ") carta_jogador_01.printarCarta() print(f">> {jogador2.nome} jogou a carta: ") carta_jogador_02.printarCarta() print(f">> {jogador3.nome} jogou a carta: ") carta_jogador_03.printarCarta() print(f">> {jogador4.nome} jogou a carta: ") carta_jogador_04.printarCarta() carta1 = Carta(carta_jogador_01.retornarNumero(), carta_jogador_01.retornarNaipe()) carta2 = Carta(carta_jogador_02.retornarNumero(), carta_jogador_02.retornarNaipe()) carta3 = Carta(carta_jogador_03.retornarNumero(), carta_jogador_03.retornarNaipe()) carta4 = Carta(carta_jogador_04.retornarNumero(), carta_jogador_04.retornarNaipe()) print("\nCarta ganhadora: ") ganhador = jogo.verificarGanhador(carta1, carta2, carta3, carta4, manilha) jogo.quemJogaPrimeiro(jogador1, jogador2, jogador3, jogador4, carta1, carta2, carta3, carta4, ganhador) jogo.adicionarPonto(jogador1, jogador2, jogador3, jogador4, carta1, carta2, carta3, carta4, ganhador)
def criaBaralho(self): for naipe in self.naipes: for carta in self.baralhoModelo: self.baralho.append( Carta(carta["carta"], carta["valor"], naipe["nome"], naipe["simbolo"]))
def criarBaralho(self): for i in ["Paus", "Copas", "Espadas", "Moles"]: for n in range(1, 14): if n < 8 or n > 10: self.cartas.append(Carta(n, i))
def criar_baralho(self): valores = self.__jogo.GerarCartas() for naipe in valores[0]: for posicao in valores[1]: carta = Carta(posicao, naipe) self.__cartas.append(carta)
#encoding:utf-8 from carta import Carta from mazo import Mazo from mano import Mano # CARTAS =============================================== carta1 = Carta(1, 11) print carta1 # "Sota de Diamantes" carta2 = Carta(1, 3) print carta2 # "3 de Diamantes" print carta2.listaDePalos[1] # "Diamantes" print carta1.__cmp__(carta2) # 1 As = Carta(1,1) print As # "As de Diamantes" Rey = Carta(1, 13) print Rey # "Rey de Diamantes" print As.__cmp__(Rey) # -1 El As es menor que el Rey