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 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
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()
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()
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 test_not_winner(self): # Given jogador = Jogador([Carta("vermelho", "1")]) # When ganhou = self.gerenciador.verificarVencedor(jogador) # Then self.assertFalse(ganhou)
def test_winner(self): # Given jogador = Jogador([]) # When ganhou = self.gerenciador.verificarVencedor(jogador) # Then self.assertTrue(ganhou)
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
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')
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)
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())
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:
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
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