Ir para conteúdo
Fórum Script Brasil

dfop02

Membros
  • Total de itens

    26
  • Registro em

  • Última visita

Tudo que dfop02 postou

  1. Bom dia/tarde/noite. Eu sou o Dfop, sou aluno de T.I. gostaria de pedir a ajuda de vocês para desenvolver uma inteligência artificial para os jogadores poderem jogar contra. Nos meus estudos, eu consegui desenvolver o jogo e uma I.A. bem simples, qualquer jogador pouco experiente em xadrez a derrotaria facilmente, porém talvez seja um desafio bacana aos novatos, e eu gostaria de aprimora-la a ponto de que seja realmente um desafio até aos mais experientes jogadores, pensei em desenvolver essa parte por meio de uma rede neural, onde posso botar duas IA para jogarem uma contra a outra na expectativa que sua experiencia em movimentos e jogadas sejam aprimoradas com cada derrota, e assim consiga melhorar, porém é um assunto complexo até para mim, dei uma estudada sobre o tema um pouco e não consegui me adaptar ainda, caso alguém saiba mais sobre, por favor diga se é viável. Caso a rede neural esteja fora de opção, este é o esquema da IA que eu tentei propor até o momento: Uma função pega todas as jogadas possíveis do computador, vou chama-lo de computer, e então os salva em uma lista de movimentos, cada movimento é pontuado de a acordo com a importância da peça que ele pode matar, no próximo passo eu vou simular 5 jogadas a frente para tentar descobrir qual a melhor opção no momento (o que tiver maior pontuação, ou seja, eliminar mais peças do q ser eliminado), e assim no final escolher a de maior pontuação. A grosso modo basicamente é isso, alguém pode me ajudar a melhorar o desempenho dela? O código em si é complicado de mostrar pois cada um tem seu modo de visualizar e escreve-lo, então prefiro explicar assim pois fica mais acessível a todos que puderem ajudar.
  2. print("Digite quantos elementos o vetor terá: ") n = input() vetor_1[n] vetor_2[n] soma[n] print("\nDigite os valores do vetor 1:\n") for i in range(n): vetor_1[i] = input() print("Digite os valores do vetor 2:\n") for i in range(n): vetor_2[i] = input() print("A soma dos vetores 1 e 2 é:\n") for i in range(n): soma[i] = vetor_1[i] + vetor_2[i] print(soma[i]) Eu não entendi a parte final do código, mas é só usar um if para satisfazer o que faltar. Acredito que seja isso que precise =)
  3. Estou com um pequeno problema aqui pra comperar uma string com uma letra, e também gostaria q tudo q o usuario digitasse no scanf seja automaticamente em maiusculo, pra evitar mais erros mas também não soube fazer, podem me explicar o que estou errando? Já tentei também botar a comparação padrão de strings strcmp mas n funcionou também =/ int digitar_jogada(){ int i, lin, col; char onde_esta[2], onde_vai[2]; printf("\nDigite com qual peça deseja jogar: "); scanf("%s", onde_esta); printf("\nDigite onde deseja jogar: "); scanf("%s", onde_vai); for (i=0; i<2; i++){ // Get the line **DA ERRO NA LINHA ABAIXO** if(onde_esta[i] == "A"){ col = 1; } else if(onde_esta[i] == "B"){ col = 2; } else if(onde_esta[i] == "C"){ col = 3; } else if(onde_esta[i] == "D"){ col = 4; } else if(onde_esta[i] == "E"){ col = 5; } else if(onde_esta[i] == "F"){ col = 6; } else if(onde_esta[i] == "G"){ col = 7; } else if(onde_esta[i] == "H"){ col = 8; } // Get the cols else if(onde_esta[i] == 1){ lin = 1; } else if(onde_esta[i] == 2){ lin = 2; } else if(onde_esta[i] == 3){ lin = 3; } else if(onde_esta[i] == 4){ lin = 4; } else if(onde_esta[i] == 5){ lin = 5; } else if(onde_esta[i] == 6){ lin = 6; } else if(onde_esta[i] == 7){ lin = 7; } else if(onde_esta[i] == 8){ lin = 8; } } return lin, col; }
  4. Certo, agora tive um progresso, mas por ser em uma linguagem que não estou habituado, eu não entendi bem as declarações e funções, apenas a parte lógica, basicamente ele manda a "IA" jogar de forma randômica em qualquer local não escolhido? Pelo menos foi o que deu a entender. Essa manipulação funciona bem em jogos de menor porte como jogo da velha que tem apenas 9 casas para preencher, mas em coisas mais elaboradas como damas e xadrez requer um refinamento a mais, algum tipo de filtragem nas jogadas, ou algo do gênero pra classificar como boas(executar) ou ruins(ignorar). Vou pesquisar sobre.
  5. Sinceramente, não ajudou muito... A ideia de vim buscar ajuda no fórum é de que alguém ajude com sugestões e/ou exemplos de como fazer. Mandar links de buscas no google é muito vago (O que alias eu já fiz antes de vir aqui, mas não encontrei o que procuro), eu procuro fazer uma IA especifica em uma linguagem especifica (C), mas não espero códigos prontos, quero aprender a fazer. Ainda assim eu agradeço a atenção o/
  6. Eu estou fazendo um xadrez como trabalho pra faculdade, e queria fazer a IA dele pra além de ser player 1 vs player 2, tenha player vs comp. Acontece que não faço a menor ideia de como fazer, alguém pode me dar uma luz de como fazer o comp jogar sozinho?
  7. Eu estou com uma extrema dificuldade em conseguir entender e aplicar uma simples barra de rolagem em um Toplevel para mostrar todo o conteudo da lista. Por favor, alguém pode me ajudar me passando um exemplo extremamente simples de como fazer um scrollbar funcional para um toplevel no python 3?
  8. Seu código está meio embolado, tente simplificar pra poder se ajudar na hora de erros e afins, mas se liga: #include<stdio.h> #include<stdlib.h> main(){ ## MATRIZ A ## int matrizA = [[]]; # Criei a matriz A vazia int lin, col; #criei as variaveis que guardam lin e col printf("Informe o numero de linhas da matriz: "); scanf("%d",&lin); #pega o valor da linha printf("\nInforme o numeros de colunas da matriz: "); scanf("%d",&col); #pega o valor da coluna ## MATRIZ B ## int matrizB = [[]]; # Criei a matriz B vazia # não precisa criar dnv lin e col, e so reutiliza-las printf("Informe o numero de linhas da matriz B: "); scanf("%d",&lin); printf("\nInforme o numeros de colunas da matriz B: "); scanf("%d",&col); ## cria a matriz que vai salvar a soma int matrizC = [[]]; int i, j; # Para cada linha... for(i=0;i<lin;i++){ # Para cada coluna... for(j=0;j<col;j++){ #pegue cada valor da matriz A e da matriz B, soma eles, e salva em C matrizC[i][j] = matrizA[i][j] + matrizB[i][j]; } } } Testa aí
  9. Perdão pela demora, eu não estava com ele comigo, eu deixei na faculdade, mas ontem fui lá e fiz uma copia pra mim, a parte de cadastro está assim: char cadastro(){ FILE *fptr; fptr = fopen("login.txt", "a"); if (fptr == NULL){ printf("Falha ao conectar \n"); return; } printf("\nUsuario: "); scanf("%s", &usuario); fprintf(fptr, "Usuario: %s\n", usuario); printf("\nSenha: "); fsenha(senha); /*fprintf(fptr, "Senha: %s\n", senha);*/ printf("\n\nConfirme a Senha: "); fsenha(csenha); fprintf(fptr, "Senha: %s\n", csenha); fprintf(fptr, " "); /*if (senha == csenha){ fprintf(fptr, "Usuario: %s\n", usuario); fprintf(fptr, "Senha: %s\n", csenha); } else{ printf("\nConfirmacao de senha incorreta"); system("pause>null"); cadastro(); }*/ fclose(fptr); } Por enquanto ele só escreve no txt, dps como comentario tentei botar um erro alí caso digitasse a confirmação de senha diferente da senha, mas não deu certo e deixei assim pra corrigir dps, e a função fsenha abaixo faz com que a senha fique oculta a quem digita, mas ele tem um erro também, ele vai direto sem a necessidade de pressionar enter, acredito q tirando o for pra while daria certo, mas n imagino como fazer. char fsenha (char senha[6]) { i = 0; for(i = 0; i <= 5; i++){ senha[i] = getch(); if(senha[i] == '\r') break; else printf("*"); } senha[i] = '\0'; } E a parte de login() eu não tenho mesmo ideia do que fazer, pensei em fazer com q cada login gerasse uma ID unica para cada usuario e senha, mas n tenho ideia de como reconhecer cada id como tal usuario e tal senha... Essa parte realmente estou a deriva, só sei q preciso abrir o arquivo txt para ler as informações, mas fora isso... E você disse que era facil, quase infartei hahaha Podem me ajudar?
  10. Eu estou fazendo um trabalho na faculdade e preciso de um sistema que "cadastre" uma pessoa usando txt, pois estou no 1 periodo, e não tenho recursos como banco de dados para utilizar, pensei em fazer assim, a entrada sera o usuario, senha e confirmação da senha, ele vai salvar essas informações em um arquivo txt, para que mesmo fechando o programa, ele continue a funcionar, aí, o sistema de login funcionaria se por acaso um desses login e senha fossem usados. Será que é muito complicado de se aplicar? Podem me ajudar? Tenho poucas semanas. Eu tentei montar algo, mas o que eu fiz transcreve por cima do que já salvou!
  11. Eu tentei mas ainda não consegui, mas mudei bastante de como estava, olhem: def prodMatrix(matrizA, matrizB): """Multiplica duas matrizes.""" matrizR = [] if colunasA != linhasB: print("não tem solucao") else: for k in range(linhasA): matrizR.append([0]*colunasB) for i in range(colunasB): matrizR[k][i] = 0 for i in range(linhasA): for j in range(colunasA): for k in range(colunasB): print(matrizR[i][j]) matrizR[i][k] += matrizA[i][j] * matrizB[i][k] return matrizR Ainda não da certo =/
  12. não se é permitido... mas up
  13. Eu fiz algumas tentativas e cheguei a isso: def prodMatrix(matrizA, matrizB): """Multiplica duas matrizes.""" sizeL = len(matrizA) sizeC = len(matrizA[0]) matrizR = [] # Multiplica for i in range(sizeL): for j in range(sizeC): val = 0 for k in matrizB: val += matrizA[i][k]*matrizB[k][j] matrizR[i][j] = val return matrizR mas não da certo, da esse erro: val = val + matrizA[i][j]*matrizB[k][n] TypeError: list indices must be integers, not list Basicamente minha ideia era criar uma terceira lista C onde vou jogar o resultado das multiplicações e somas necessarias Eu olhei alguns sites sobre e foi o mais próximo que consegui resolver =/ alguém pode me ajudar?
  14. dfop02

    Ajuda no programa

    tenta dar um espaçamento nela, ficaria assim:
  15. dfop02

    Ajuda com programa [2]

    Agora eu entendi tudo, obrigado por tudo!
  16. dfop02

    Ajuda com programa [2]

    Certo, peguei mais ou menos a ideia, mas onde exatamente ele troca o F pelo I na matriz? Por que pelo que entendi, ele só localiza se há "I" em torno do "F" mas não o substitui. Eu testei o código e realmente funciona, não consigo entender qual parte diz para trocar as letras, pode me auxiliar?
  17. dfop02

    Ajuda com programa [2]

    Primeiro, obrigado mais uma vez! Vamos lá, N = Linha, M = Coluna (Só deixei essa variavel confusa pois no exercicio pede para declarar elas). Sobre a parte do i e j, agora eu entendi perfeitamente, estava confuso do pq que não conseguia funciona, pois eu estava tomando como base outras respostas suas, tentei só adaptar, a ideia foi boa mas a execução deixou a desejar né kk Sobre o final, O resultado deveria ser I I I I I I I I I I I I I I I I Todo F que o I toca, torna-se I (Exceto nas diagonais), e isso se aplica ao F após ele virar I também, até não ter mais opções.
  18. dfop02

    Ajuda com programa [2]

    Sobre esse eu li tudo e entendi sim o que você fez, mas nunca conseguiria pensar nisso, ainda preciso aprender muito. Sobre o ultimo exercicio eu realmente não consegui fazer a parte final dele, também é de matriz (Essas de matriz acabaram comigo). Você digita uma entrada em forma de matriz assim: I I I x x F F x F Basicamente ele deve mudar toda letra F que estiver com uma letra I que encoste nele, em sua horizontal ou vertical. A saída ficaria assim: I I I x x I F x I Entendeu? eu tentei assim: from __future__ import print_function while True: print("Digite a quantidade de colunas e linhas, respectivamente:") valores = raw_input() partes = valores.split() N = (int(partes[0])) M = (int(partes[1])) matriz = [] icones = ['x', 'I', 'F'] print("Digite o ambiente do tesouro") for i in range(N): partes = [] valores = raw_input() partes = valores.split() matriz.append(partes[0:]) for i in matriz: for j in i: if j != ('x' or 'I' or 'F'): None #nao funciona =/ #print("Somente os caracteres abaixo sao permitidos") #print(icones[0:]) else: None for i in range(M): for j in range(N): if j == 'F': if (j+1 or j-1 or i+1 or i-1) == 'I': matriz[i][j].replace('F', 'I') for i in matriz: for j in i: print(j, end=' ') print("") if N == 0 and M == 0: break Deve ser algo extremamente simples que errei aí, pode dar uma olhada por favor? Esse é o ultimo, prometo kk
  19. dfop02

    Ajuda com programa [2]

    Valeu mano, eu nunca chegaria nisso sozinho, vou ter que estudar bastante esse codigo, mas um problema é que a entrada precisa ser no próprio Python 3, mas não se preocupe, pois eu consegui adaptar seu codigo para que mesmo receba a entrada ao enves de puxar de um arquivo text.txt Muito obrigado novamente. Agora vou estudar esse e então só faltará 1 exercicio e vou tentar mais um pouco resolve-lo, se não consegui peço ajuda novamente =) Só o que está me complicando no último é um jeito de trocar um caracter se "F" se pelo menos um dos 4 visinhos (cima, baixo, esquerda ou direita), for a letra "I". mas sigo tentando kk
  20. Essa é a questão, eu fiz o seguinte até o momento: # -*- coding: utf-8 -*- from __future__ import print_function tam = [] mapa = [] print("Digite a quantidade de colunas e linhas, respectivamente:") valores = raw_input() partes = valores.split() tam.append(int(partes[0])) tam.append(int(partes[1])) mapa = [] for i in range(tam[1]): mapa.append(raw_input()) lin = [] col = [] icones = ['.', '>', '<', '^', 'v', '*'] if mapa.append() != '>' or '<' or '^' or 'v' or '.' or '*': print("Somente os caracteres abaixo são permitidos") print(icones) mapa.remove(-1) while icones != '*' and icones != '.': if icones == '>': if mapa[1][0] == 'v': icones = 'v' if mapa[1][0] == '<': icones = '<' if mapa[1][0] == '^': icones = '^' if mapa[1][0] == '*': icones = '*' if (mapa[1][0] == '>' or mapa[1][col] == '.') and col == len(mapa[1]): icones = '.' if (mapa[1][0] == '>' or mapa[1][col] == '.') and col < len(mapa[1]): col += 1 if icones == '<': if mapa[1][0] == 'v': icones = 'v' if mapa[1][0] == '>': icones = '>' if mapa[1][0] == '^': icones = '^' if mapa[1][0] == '*': icones = '*' if (mapa[1][0] == '<' or mapa[1][col] == '.') and col == len(mapa[1]): icones = '.' if (mapa[1][0] == '<' or mapa[1][col] == '.') and col < len(mapa[1]): col += -1 if icones == '^': if mapa[1][0] == 'v': icones = 'v' if mapa[1][0] == '>': icones = '>' if mapa[1][0] == '>': icones = '>' if mapa[1][0] == '*': icones = '*' if (mapa[1][0] == '^' or mapa[1][col] == '.') and col == len(mapa[1]): icones = '.' if (mapa[1][0] == '^' or mapa[1][col] == '.') and col < len(mapa[1]): lin += -1 if icones == 'v': if mapa[1][0] == '^': icones = '^' if mapa[1][0] == '>': icones = '>' if mapa[1][0] == '>': icones = '>' if mapa[1][0] == '*': icones = '*' if (mapa[1][0] == 'v' or mapa[1][col] == '.') and col == len(mapa[1]): icones = '.' if (mapa[1][0] == 'v' or mapa[1][col] == '.') and col < len(mapa[1]): lin += 1 if icones == '*': print("Esse mapa leva ao tesouro") break else: print("Esse mapa não leva a lugar nenhum") break Alguém pode me ajudar?? Eu não consigo fazer o código percorrer a linha em busca de outra seta e nem atribuir a ela essa função de verificar outras setas no caminho até achar o "*". Tentei fazer apenas usando while e if mas não deu muito certo =/
  21. dfop02

    Ajuda com Programa

    Muito Obrigado! Me ajudou bastante
  22. dfop02

    Ajuda com Programa

    Poxa muitissimo obrigado, mas deixe-me tirar algumas duvidas: 1 - pode pode explicar mais detalhadamente como fez a parte do numsmaiores? estava sendo minha maior dificuldade. 2 - Na primeira parte eu havia pensado em por todos os numeros em um vetor e depois puxar os vetores por linha, mas não consegui escrever dessa forma, olhando o seu parece que você pensou o mesmo que eu só que conseguiu escreve-lo, pode me explicar tambem a linha a baixo do "For i in range(lin)", por favor. Obrigado por tudo =)
×
×
  • Criar Novo...