コード例 #1
0
 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)
コード例 #2
0
    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
コード例 #3
0
 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)
コード例 #4
0
 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)
コード例 #5
0
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)
コード例 #6
0
 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)
コード例 #7
0
    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))
コード例 #8
0
    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)
コード例 #9
0
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
コード例 #10
0
 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)
コード例 #11
0
 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)
コード例 #12
0
ファイル: test_baraja.py プロジェクト: spuzi/holdem
 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)
コード例 #13
0
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
コード例 #14
0
ファイル: test_baraja.py プロジェクト: spuzi/holdem
 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)
コード例 #15
0
ファイル: mazo.py プロジェクト: carmenmoralesb/Python2019
 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()
コード例 #16
0
    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()
コード例 #17
0
 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)
コード例 #18
0
ファイル: operacionesbd.py プロジェクト: vblanes/tfg-codigo
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]
    )
コード例 #19
0
 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")
コード例 #20
0
    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()
コード例 #21
0
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
コード例 #22
0
ファイル: mazo.py プロジェクト: carmenmoralesb/Python2019
    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)
コード例 #23
0
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()
コード例 #24
0
ファイル: test_mano.py プロジェクト: spuzi/holdem
 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())
コード例 #25
0
ファイル: test_mano.py プロジェクト: spuzi/holdem
 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())
コード例 #26
0
        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!")
コード例 #27
0
ファイル: run.py プロジェクト: anthonyzutter/Truco-Jogo
        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)
コード例 #28
0
 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"]))
コード例 #29
0
ファイル: baralho.py プロジェクト: anthonyzutter/Truco-Jogo
 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))
コード例 #30
0
ファイル: baralho.py プロジェクト: jonatha-silva/truco
 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)
コード例 #31
0
ファイル: objetos.py プロジェクト: cristiancena/django_lab
#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