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?
Pergunta
Lorena Soares
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?
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.