Ir para conteúdo
Fórum Script Brasil

Lorena Soares

Membros
  • Total de itens

    1
  • Registro em

  • Última visita

Tudo que Lorena Soares postou

  1. Lorena Soares

    Jogo do mico

    class Carta: def __init__(self, naipe=0, posicao=0): self.naipe = naipe self.posicao = posicao class Carta: listaDeNaipes = ["Paus", "Ouros", "Copas", "Espadas"] listaDePosicoes = ["narf", "Ás", "2", "3", "4", "5", "6", "7", "8", "9", "10", "Valete", "Rainha", "Rei"] def __str__(self): return (self.listaDePosicoes[self.posicao] + " de " + self.ListaDeNaipes[self.naipe]) class Baralho: def __init__(self): self.cartas = [] for naipe in range(4): for posicao in range(1, 14): self.cartas.append(Carta(naipe, posicao)) class Baralho: def imprimirBaralho(self): for carta in self.cartas: print carta class Baralho: def __str__(self): s = "" for i in range(len(self.cartas)): s = s + " "*i + str(self.cartas) + "\n" return s class Baralho: def embaralhar(self): import random nCartas = len(self.cartas) for i in range(nCartas): j = random.randrange(i, nCartas) self.cartas, self.cartas[j] = self.cartas[j], self.cartas class Baralho: def removerCarta(self, carta): if carta in self.cartas: self.cartas.remove(carta) return 1 else: return 0 class Baralho: def distribuirCarta(self): return self.cards.pop() class Baralho: def estahVazio(self): return (len(self.cartas) == 0) class Mao(Baralho): pass class Mao(Baralho): def __init__(self, nome=""): self.cartas = [] self.nome = nome class Mao(Baralho): def adicionarCarta(self,carta): self.cartas.append(carta) class Baralho: def distribuir(self, maos, nCartas=999): nMaos = len(maos) for i in range(nCartas): if self.estahVazia(): break # interromper se acabaram as cartas carta = self.pegarCarta() # pegar a carta do topo mao = maos # quem deve receber agora? mao.adicionarCarta(carta) # adicionar a carta à mao baralho = Baralho() baralho.embaralhar() mao=Mao("fabio") baralho.distribuir([mao], 5) print mao class Mao(Baralho): def __str__(self): s = "Mao " + self.nome if self.estahVazia(): return s + " está vazia\n" else: return s + " contém\n" + Baralho.__str__(self) class JogoDeCartas: def _init_(self): self.baralho = Baralho() self.baralho.embaralhar() class MaoDeMico(Mao): def descartarCasais(self): conta = 0 cartasIniciais = self.cartas[:] for carta in cartasIniciais: casal = Carta(3 - carta.naipe, carta.valor) if casal in self.cartas: self.cartas.remove(carta) self.cartas.remove(casal) print "Mao %s: %s casais %s" % (self.nome,carta,casal) conta = conta + 1 return conta jogo = JogoDeCartas() Mao = MaoDeMico("fabio") jogo.baralho.distribuir([mao], 13) print mao mao.descartarCasais() print mao class Mico(JogoDeCartas): def jogar(self, nomes): # remover a Dama de paus self.baralho.removerCarta(Carta(0,12)) # fazer uma mão para cada jogador self.maos = [] for nome in nomes : self.maos.append(MaoDeMico(nome)) # distribuir as cartas self.baralho.distribuir(self.maos) print "---------- As cartas foram dadas" self.exibirMaos() # remover casais iniciais casais = self.removerTodosOsCasais() print "---------- Os pares foram descartados, o jogo começa" self.exibirMaos() # jogar até que 25 casais se formem vez = 0 numMaos = len(self.maos) while casais < 25: casais = casais + self.jogarVez(vez) vez = (vez + 1) % numMaos print "---------- Fim do jogo" self.exibirMaos() class Mico(JogoDeCartas): def removerTodosOsCasais(self): conta = 0 for mao in self.maos: conta = conta + mao.descartarCasais() return conta class Mico(JogoDeCartas): def jogarVez(self, i): if self.maos.estahVazia(): return 0 vizinho = self.buscarVizinho(i) novaCarta = self.maos[vizinho].pegarCarta() self.maos.adicionarCarta(novaCarta) print "Mao", self.maos.nome, "pegou", novaCarta conta = self.maos.descartarCasais() self.maos.embaralhar() return conta class Mico(JogoDeCartas): def buscarVizinho(self, i): numMaos = len(self.maos) for next in range(1,numMaos): vizinho = (i + next) % numMaos if not self.maos[vizinho].estahVazia(): return vizinho import cartas jogo = cartas.Mico() jogo.jogar(["Alice","Jair","Clara"]) Estou tentando rodar este programa e esta dando esse erro: Traceback (most recent call last): File "C:\Users\xxxx\Desktop\xxx\baralho.py", line 95, in <module> Mao = MaoDeMico("fabio") TypeError: this constructor takes no arguments Não to conseguindo entender o porque, alguém poderia me ajudar?
×
×
  • Criar Novo...