Exemple #1
0
def campeonatoTeste():

    jogador1 = Jogador()
    jogador2 = Jogador()

    contEmpate = 0
    cont1 = 0
    cont2 = 0

    for i in range(0, 100):

        ambiente = AmbienteTicTacToe(3)

        partida = Partida(ambiente)

        result = partida.partidaJogoDaVelha(jogador1.executaJogadorAleatorio,
                                            jogador2.executaJogadorMiniMax)

        if result == 0:
            contEmpate += 1
        elif result == 1:
            cont1 += 1
        else:
            cont2 += 1

    print('\nVIT PLAYER 1: ' + str(cont1))
    print('VIT PLAYER 2: ' + str(cont2))
    print('EMPATE: ' + str(contEmpate))
 def __init__(self, name):
     '''
     Construtor
     @param nome: Nome do jogador.
     '''
     name = 'CPU:AlfaBeta: %s' % name
     Jogador.__init__(self, name)
Exemple #3
0
def Jogo():
    jogo = Telas()
    #Coloquei pra receber a janela quando inicia o objeto, pra usar o width e height chamando a janela
    jogador = Jogador(jogo.janela)
    inimigos = Inimigos()

    tem_inimigo = 0

    lista_x = []
    for i in range(4):
        lista_x.append(random.randint(1, 1200))
    lista_y = []
    for i in range(4):
        lista_y.append(random.randint(1, 200))

    while True:

        jogo.fundo.draw()

        for i in range(4):
            inimigos.cria_inimigo(inimigos.matriz_inimigos[0][i],
                                  inimigos.matriz_inimigos[1][i], lista_x[i],
                                  lista_y[i])

        #mudei tirei a movimentar fiona e coloquei tudo no metodo update
        jogador.update()

        jogo.janela.update()
Exemple #4
0
    def jogar(self):
        fruta = self.__frutas.sorteiaFruta()
        letras = ['_'] * len(fruta)
        j = Jogador()

        while True:

            if j.tentativa == 0:
                print('Suas tentativas terminaram')
                break
            print(f'Tentativas restantes {j.tentativa}')
            l = input('Digite uma letra: ')
            if len(l) == 1:
                if l in fruta:
                    letras = self.__colocaLetra(fruta, l, letras)
                else:
                    print('letra nao esta na palavra\n')
                    j.tentativa = 1
            else:
                if l == fruta:
                    print('Voce acertou')
                    break
                else:
                    print('Errouuuuu\n')
                    j.tentativa = 1

            if not '_' in letras:
                print('Voce acertou')
                break
def menu():
    '''
    Função que representa o Menu, onde há a parametrização dos objetos
    '''
    print("Bem vindo ao SE-PA-RAN-DO!!!")
    nome = input("Digite seu nome: ")
    jogador = Jogador(nome)
    jogador.tipo = "JOGADOR"

    print("1 - Criar Sala")
    print("2 - Entrar na sala")
    opcao = int(input("Digite a opção desejada: "))

    if opcao == 1:
        limite = int(
            input(
                "Informe o limite máximo da sala(Não informe para sem limites): "
            ))
        sala = Sala(limite, nome)
        sala.addParticipantes(nome)
    elif opcao == 2:
        sala = None

    ret = [jogador, sala, opcao]
    return ret
Exemple #6
0
    def __init__(self, tela):
        self.jogador = Jogador(0, 640 / 3)
        bola = Bola(3 * 960 / 4, 640 / 2, -420, 30 * random.randint(-10, 10))
        self.parede1 = ParedeHorizontal("src/g/ping_pong_wall.png", 0, 0)
        self.parede2 = ParedeHorizontal("src/g/ping_pong_wall2.png", 0,
                                        640 - 10)
        self.parede3 = ParedeVertical("src/g/ping_pong_fundo.png", 960 - 10, 0,
                                      10, 640, False)
        self.r, self.g, self.b = 0, 0, 0
        self.tela = tela
        self.bolas = [bola]
        self.inicializarSons()
        tempo = current_milli_time = lambda: int(round(time.time() * 1000))
        random.seed(tempo)
        # pygame.mixer.init()
        self.scoreFont = pygame.font.SysFont("tahoma.TTF", 60)
        self.score = 0

        self.up = pygame.rect.Rect(0, -200, 960, 200)
        self.down = pygame.rect.Rect(0, 640, 960, 200)
        self.right = pygame.rect.Rect(960, 0, 200, 640)

        self.obstaculos = [
            self.parede1, self.parede2, self.parede3, self.jogador, self.up,
            self.down, self.right
        ]
        self.q = Queue()
        self.st = threading.Thread(target=self.tocar_som, daemon=True)
        self.st.start()
Exemple #7
0
    def inicializarJogo(self):
        """
        Inicializa o jogo: cria as cartas e as distribui para os jogadores e as pilhas.
    """
        # Inicializa a pilha de descarte do jogo construindo o objeto "monte" e retirando 1 carta
        monte = self.monte

        while True:
            primeira_carta = monte.desempilhaMonte()
            self.pilha_mesa.append(primeira_carta)
            if primeira_carta.tipo != "+2" and primeira_carta.tipo != "reverso" and primeira_carta.tipo != "pula" and primeira_carta.tipo != "escolhacor" and primeira_carta.tipo != "+4":
                break

        while True:
            self.n_de_jogadores = int(input("Digite o número de jogadores:"))

            if int(self.n_de_jogadores) not in list(range(2, 10)):
                print("Número inválido de jogadores.")
            else:
                break

        # Inicializa cada jogador com sua respectiva quantidade de cartas
        for i in range(self.n_de_jogadores):
            listaMao = []
            for j in range(self.qtd_cartas_iniciais):
                listaMao.append(monte.desempilhaMonte())
            jogador = Jogador(listaMao)
            self.jogadores.append(jogador)

        # Inicializa a pilha de compra do jogo retirando as cartas restantes do objeto "monte"
        self.pilha_compra = monte.getMonte().copy()
Exemple #8
0
    def test_not_winner(self):
        # Given
        jogador = Jogador([Carta("vermelho", "1")])

        # When
        ganhou = self.gerenciador.verificarVencedor(jogador)

        # Then
        self.assertFalse(ganhou)
Exemple #9
0
    def test_winner(self):
        # Given
        jogador = Jogador([])

        # When
        ganhou = self.gerenciador.verificarVencedor(jogador)

        # Then
        self.assertTrue(ganhou)
Exemple #10
0
    def quantidade_jogadores(self):
        lista_jogadores = []
        while True:
            try:
                num_jogadores = int(input("quantos jogadores na mesa: "))
                if num_jogadores < 1 or num_jogadores > 7:
                    print("favor digitar um numero entre 1 e 7")
                else:
                    break
            except ValueError:
                print('Favor digitar um numero')

        for i in range((num_jogadores)):
            nome = input(f"Nome do jogador número {i+1}: ")
            jogador = Jogador(nome)
            lista_jogadores.append(jogador)
        croupier = Jogador("Le Croupier")
        lista_jogadores.append(croupier)
        return lista_jogadores
Exemple #11
0
    def __numeroJogadores(self, lista : list) -> list:
        try:
            numero = int(input('Digite a quantidade de jogadores: '))
            while numero < 2 or numero > 7:
                numero = int(input('O numero deve ser no minimo 2 e no maximo 7'))

            for i in range(0,numero):
                j = Jogador(f'Jogador {i}')
                lista.append(j)
        except:
            print('Digite apenas numeros')
Exemple #12
0
def treinamentoSupervisionadoTradicional():

    treinamento = TreinamentoSupervisionado(AmbienteTicTacToe(3))

    redeTreinada = treinamento.executaTreinamentoTradicional(
        numPartidas=1000,
        numIteracoes=20000,
        taxaAprendizagem=0.001,
        momentum=1)

    jogador1 = Jogador()
    jogador2 = Jogador(redeTreinada)

    print(
        "\nTorneio entre Jogador Aleatório e Jogador Minimax com Rede Treinada"
    )
    partidaJogadores(jogador1.executaJogadorAleatorio,
                     jogador2.executaJogadorMiniMaxNN, 100, False)

    print(
        "\nTorneio entre Jogador MiniMax com Função Estática e Jogador Minimax com Rede Treinada"
    )
    partidaJogadores(jogador1.executaJogadorMiniMax,
                     jogador2.executaJogadorMiniMaxNN, 10, False)
Exemple #13
0
	print( regras.read() )
	regras.close()

	input('\n>>> Aperte <ENTER> para continuar <<<\n')
	os.system(limpar)


	# ---------------------------------------------------------------------------------------------------------------------------------------------------
	# Recebendo o nome dos BOTS e criando BOTS:
	for i in range(qtdBOTS):
		nome = input('Digite o nome do BOT %i: ' %(i))

		while nome.lower() in nomeBOTS or nome == '' or nome == 'REVISAR':									# REVISAR é uma palavra reservada
			nome = input('Digite outro nome: ')

		jogadores[nome.lower()]	= Jogador( nome, 'Vivo', choice( [-2, -1, 0, 1, 2] ), dict() ) 		# Criando BOTS, ainda sem cartas
		nomeBOTS[nome.lower()]	= nome 																# nomeBOTS[vinicius] = ViNiCiUs, por exemplo

		tamMaiorNome = max( [len(nome) for nome in nomeBOTS] ) 										# recebendo o tamanho do maior nome

	# ----------------------------------------------------------------------------------------------------------------------------------------------------
	# Iniciando partida:
	partida	= 1
	sair	= False

	while not sair: 											# Enquanto usuário não decidir sair
		#os.system(limpar)
		#print('Partida:',partida)
		#print('Usuário',ptUsuario,'vs',ptAssassinos,'Assassinos')
		# -------------------------------------------------------------------------------------------
		# Distribuindo cartas:
Exemple #14
0
            jogador.dados_iguais += 1  # Incrementa a quantidade de jogadas com dados iguais
            jogador.jogadas += 1  # Adiciona uma nova jogada para o jogador

    if not jogador.esta_preso:
        for dado in dados:
            soma_dos_dados += dado
        jogador.caminha(soma_dos_dados)

    # Carrega o objeto do terreno onde o jogador esta para a variavel casa
    casa = Tabuleiro.tabuleiro[jogador.posicao]
    Acao.verifica_terreno(jogador, casa)

    if jogador.jogadas == 0:
        print("Fim do turno do {jogador}.".format(jogador=jogador.nome))
    else:
        turno(jogador)


if __name__ == '__main__':

    for num_jogador in range(Configuracoes.quantidade_jogadores):
        nome = input("Digite o nome do jogador {num}: ".format(num=str(num_jogador)))  # Pega o nome do jogador
        jogador = Jogador(nome)  # Cria uma instancia do objeto para o jogador
        Configuracoes.jogadores.append(jogador)  # Adiciona o jogador na lista de jogadores

    while len(Configuracoes.jogadores) > 1:
        for jogador in Configuracoes.jogadores:
            jogador.inicia_turno()
            turno(jogador)
            input("Pressione qualquer tecla para continuar...")
Exemple #15
0
    return opt

option=Menu()
while(option != 5):
    if (option==1):
        nome= input("Digite o Nome do Jogo: ")
        price=float(input("Digite o preco do Jogo: "))
        jogo.append(Jogo(nome,price))
        print(jogo[i].name, jogo[i].price)
        i+=1
        option=Menu()

    if (option==2):
        nomeP= input("Digite o Nome do Jogador: ")
        JogoP= input("Digite o Nome do Jogo: ")
        jogador.append(Jogador(nomeP,JogoP))
        print(jogador[i].nome, jogador[i].jogo)
        j+=1
        option=Menu()
        
    if(option==3):
        nomeAP= input("Digite o nome do Apostador: ")
        cpf= int(input("Digite o CPF do Apostador: "))
        mail=input("Digite o e-mail do Apostador: ")
        tel= input("Digite o telefone do Apostador: ")
        qt= int(input("Digite a quantidade de fichas: "))
        jogs= input("Digite o nome do jogo: ")
        player=input("Digite o nome do jogador: ")
        aposta.append(Aposta(nomeAP,cpf,mail,tel,qt,jogs,player))
        print(aposta[k].Nome,aposta[k].CPF , aposta[k].Email,aposta[k].Telefone, aposta[k].Quantidade,aposta[k].Jogo,aposta[k].Jogador)
        k+=1
Exemple #16
0
from Mesa import Mesa
from Jogador import Jogador
if __name__ == '__main__':
    njogadores = int(input('Escolha a quantidade de jogadores: '))
    mesa = Mesa(njogadores)
    for i in range(0, njogadores):
        nome = str(input('Escreva o nome do jogador ' + str(i + 1) + ": "))
        mesa.adicionar_jogador(Jogador(nome, 500))
    mesa.distribuir_cartas()
    mesa.colocar_cartas_mesa()
    print(mesa.checa_vencedor())
    def executaTreinamentoTradicional(self,
                                      numPartidas=1000,
                                      numIteracoes=100000,
                                      taxaAprendizagem=0.1,
                                      momentum=1):

        print('--- INÍCIO TREINAMENTO ---\n')
        print("Etapa 1: Criação Base de Dados -> ", numPartidas, " jogos\n")

        ##Criação da base de dados (entradas (estados finais) e saídas (true labels))
        baseDadosEntradasEstadosFinais = np.zeros((1, 9))
        baseDadosSaidasEstadosFinais = np.zeros((1, 1))

        iteracao = 0

        ##Início Etapa 1
        while iteracao < numPartidas:

            ##Inicializa Partida
            tabuleiro = self.ambiente.getTabuleiro().getEstadoAtual()

            jogadorTurno = 1

            #Enquanto a partida estiver sendo realizada
            while True:

                movimentosLegais = list(
                    self.ambiente.movimentosDisponiveisLegais(tabuleiro))

                if len(movimentosLegais) == 0:
                    break

                if jogadorTurno > 0:
                    movimento = Jogador().executaJogadorAleatorio(
                        self.ambiente, tabuleiro, 1)
                else:
                    movimento = Jogador().executaJogadorAleatorio(
                        self.ambiente, tabuleiro, -1)

                #Movimento ilegal ocasiona em vitória do oponente
                if movimento not in movimentosLegais:
                    print("Movimento Ilegal", movimento)
                    break

                #Executa movimento
                tabuleiro = self.ambiente.executaMovimento(
                    tabuleiro, movimento, jogadorTurno)

                #Exibe o movimento realizado pelo jogador corrente
                #self.ambiente.exibeMovimento(tabuleiro, jogadorTurno)

                #Verifica se há um vencedor
                vencedor = self.ambiente.verificaExistenciaVencedor(tabuleiro)

                #Caso houver vencedor, termina a partida e atualia a melhor rede
                if vencedor != 0:
                    break

                #Troca turno
                jogadorTurno = -jogadorTurno

            ##Base de Dados de Estados Finais

            entrada = np.array([tabuleiro])
            saida = np.array([
                Utilidade(self.ambiente, 'Estatica').funcaoAvaliacao(tabuleiro)
            ]).reshape(1, 1)

            if (saida == 1 or saida == 0 or saida == -1) and (
                    entrada != baseDadosEntradasEstadosFinais).all(1).any():
                baseDadosEntradasEstadosFinais = np.append(
                    baseDadosEntradasEstadosFinais, entrada, axis=0)
                baseDadosSaidasEstadosFinais = np.append(
                    baseDadosSaidasEstadosFinais, saida, axis=0)
            else:
                iteracao -= 1

            iteracao += 1
        ##Fim Etapa 1

        ##Início Etapa 2

        print('Etapa 2: Treinamento da Rede com a Base de Dados\n')

        inicio = timeit.default_timer()
        rede = RedeNeuralMLP(9, 20, 1)  #Criação da Rede

        ##Split da base em treinamento e teste (80% treinamento e 20% teste)
        entradasTreinamento, entradasTeste, saidasTreinamento, saidasTeste = train_test_split(
            baseDadosEntradasEstadosFinais,
            baseDadosSaidasEstadosFinais,
            test_size=0.2)

        custos, iteracoes = rede.executaTreinamentoModelo2Camadas(
            entradasTreinamento, saidasTreinamento, numIteracoes,
            taxaAprendizagem, momentum)

        plt.plot(iteracoes, custos)
        plt.xlabel('Número Iterações')
        plt.ylabel('Custo')
        plt.show()
        total = timeit.default_timer() - inicio

        print("Tempo de Treinamento: " + str(total) + " segundos.")
        ##Fim Etapa 2

        ##Início Etapa 3

        print("\nEtapa 3: Teste da Rede\n")

        ##Array de true labels e de saídas obtidas pela rede
        saidasTeste = saidasTeste.reshape(saidasTeste.shape[1],
                                          saidasTeste.shape[0])
        predicoesTeste = rede.predicao(entradasTeste)

        ##Arredondamento dos valores que foram obtidos pela rede (Exemplo: 0.99 = 1)
        predicoesTeste = np.round(predicoesTeste,
                                  decimals=1).reshape(saidasTeste.shape)

        ##Cálculo da precisão da rede
        precisaoRede = np.sum(
            np.equal(predicoesTeste, saidasTeste) / saidasTeste.size) * 100

        print('Precisão da Rede Treinada: ', precisaoRede, '%\n')

        ##Fim Etapa 3

        return rede
Exemple #18
0
from Jogador import Jogador

#Instanciação ciração de um objeto com nome(jogador1)
jogador1 = Jogador('Neymar', 'Corinthians', 10, 9.5)
print('nome: ', jogador1.getNome())
print('time: ', jogador1.getTime())
print('camisa: ', jogador1.getCamisa())
print('velocidade: ', jogador1.getVelocidade())
 
Exemple #19
0
 def __init__(self, name):
     '''
     Construtor
     @param nome: Nome do jogador.
     '''
     Jogador.__init__(self, name)
Exemple #20
0
class Jogo():
    def __init__(self, tela):
        self.jogador = Jogador(0, 640 / 3)
        bola = Bola(3 * 960 / 4, 640 / 2, -420, 30 * random.randint(-10, 10))
        self.parede1 = ParedeHorizontal("src/g/ping_pong_wall.png", 0, 0)
        self.parede2 = ParedeHorizontal("src/g/ping_pong_wall2.png", 0,
                                        640 - 10)
        self.parede3 = ParedeVertical("src/g/ping_pong_fundo.png", 960 - 10, 0,
                                      10, 640, False)
        self.r, self.g, self.b = 0, 0, 0
        self.tela = tela
        self.bolas = [bola]
        self.inicializarSons()
        tempo = current_milli_time = lambda: int(round(time.time() * 1000))
        random.seed(tempo)
        # pygame.mixer.init()
        self.scoreFont = pygame.font.SysFont("tahoma.TTF", 60)
        self.score = 0

        self.up = pygame.rect.Rect(0, -200, 960, 200)
        self.down = pygame.rect.Rect(0, 640, 960, 200)
        self.right = pygame.rect.Rect(960, 0, 200, 640)

        self.obstaculos = [
            self.parede1, self.parede2, self.parede3, self.jogador, self.up,
            self.down, self.right
        ]
        self.q = Queue()
        self.st = threading.Thread(target=self.tocar_som, daemon=True)
        self.st.start()

    def iniciar(self):
        TelaInicial(self.tela).telaInicial()
        while True:
            self.jogo()
            GameOver(self.tela, self.score).gameOver()
            self.__init__(self.tela)

    def jogo(self):
        self.segundos = 0
        clock = pygame.time.Clock()
        var = True
        while (var):
            self.segundos = clock.tick(60) / 1000.0

            var = self.checarEventos()
            self.atualizarBola()
            self.atualizarTela()
            if not self.bolas:
                var = False

    def checarEventos(self):
        for x in pygame.event.get():
            if x.type == pygame.QUIT:
                return pygame.quit()
            elif x.type == pygame.KEYDOWN:
                if x.key == pygame.K_DOWN:
                    if not (self.jogador.colliderect(self.parede2)):
                        self.jogador.mover(False, self.segundos)
                elif x.key == pygame.K_UP:
                    if not (self.jogador.colliderect(self.parede1)):
                        self.jogador.mover(True, self.segundos)
        return True

    def atualizarBola(self):
        for bola in self.bolas:
            bola.mover(self.segundos)
            if bola.left < -90 or bola.left > 960:
                self.bolas.remove(bola)
                # if random.randint(0,2)==0:
                # 	self.som3.play()
                continue
            indice = bola.collidelist(self.obstaculos)
            if indice != -1:
                self.atualizarCor()
                if self.obstaculos[indice] == self.jogador:
                    self.q.put(bola.centery - self.jogador.centery)
                    self.score += 1
                    b = self.jogador.colidirBola(bola)
                    self.bolas.append(b)

                elif self.obstaculos[indice] == self.up:
                    bola.top = 40
                elif self.obstaculos[indice] == self.down:
                    bola.top = 600
                elif self.obstaculos[indice] == self.right:
                    bola.right = 950
                else:
                    # self.som2.play()
                    self.obstaculos[indice].colidirBola(bola)

    def atualizarTela(self):
        self.tela.fill((self.r, self.g, self.b))
        self.tela.blit(self.jogador.superficie, self.jogador)
        self.tela.blit(self.parede1.superficie, self.parede1)
        self.tela.blit(self.parede2.superficie, self.parede2)
        self.tela.blit(self.parede3.superficie, self.parede3)
        score = self.scoreFont.render(str(self.score), True, (255, 255, 255))
        rec = self.tela.get_rect()
        self.tela.blit(
            score, (rec.centerx - score.get_rect().width / 2, rec.top + 50))
        for bola in self.bolas:
            self.tela.blit(bola.superficie, bola)
        pygame.display.flip()

    def inicializarSons(self):
        self.sons = []
        self.som2 = pygame.mixer.Sound("src/s/ping_pong_8bit_plop.ogg")
        self.som3 = pygame.mixer.Sound("src/s/ping_pong_8bit_peeeeeep.ogg")
        # i=1
        # while(i<=14):
        # 	self.sons.append(pygame.mixer.Sound("src/s/ping_pong_8bit_beeep"+str(i)+".ogg"))
        # 	i+=1
        import os
        s = [
            os.fsdecode("src/s/piano/" + x)
            for x in sorted(os.listdir("src/s/piano"))
        ]
        s = s[24:48]
        self.sons = [pygame.mixer.Sound(x) for x in s if x.endswith(".wav")]

    def atualizarCor(self):
        acrescimo = 1  #random.randint(5,25)
        n = random.randint(1, 3)
        i = random.randint(0, 1)
        if i == 0:
            if n == 1:
                self.r = (self.r + acrescimo) % 255
            elif n == 2:
                self.g = (self.g + acrescimo) % 255
            else:
                self.b = (self.b + acrescimo) % 255
        elif i == 1:
            if n == 1:
                if self.r > acrescimo:
                    self.r -= acrescimo
            elif n == 2:
                if self.g > acrescimo:
                    self.g -= acrescimo
            else:
                if self.b > acrescimo:
                    self.b -= acrescimo
        # elif i==2:
        # 	if random.randint(0,512)==23:
        # 		self.r = 255 - self.r
        # 		self.g = 255 - self.g
        # 		self.b = 255 - self.b

    def tocar_som(self):
        nch = pygame.mixer.get_num_channels()
        channels = [pygame.mixer.Channel(x) for x in range(0, nch)]
        h = self.jogador.height
        i = 0
        while True:
            a = self.q.get() + self.jogador.height / 2
            s = int(((a / h) * len(self.sons)))
            if s < 0:
                s = 0
            elif s >= len(self.sons):
                s = len(self.sons) - 1
            print(s)
            c = channels[i]
            c.stop()
            # c.play(self.sons[random.randint(0,len(self.sons)-1)])
            c.play(self.sons[s])
            i = (i + 1) % nch