Code Monkey home page Code Monkey logo

svfb-gui's People

Contributors

jpvolt avatar setti7 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

svfb-gui's Issues

Aprimorar error handling

Adicionar algo do tipo:
QMessageBox.information(self, "Oops!", "Could not start score thread: %s" % e)
Para sinalizar pro usuário que deu alguma merda.

Erro de design no site

ùltimo item da tabela de data sempre está um pouco maior que os outros itens por algum motivo, tentei remover a margem de baixo e de cima mas nao resolveu

Testar pra ver se o novo sistema offline de salvamento funciona sem problemas

Fazer programa salvar vários arquivos training data quando offline e mandar cada um para o site individualmente quando tiver conexão com a internet. Quando for salvar o arquivo, dar a ele um nome uuid4. Quando for enviar o arquivo, renomear ele para o nome que o site aceita e enviar. Fazer isso sequancialmente para cada arquivo até que todos sejam enviados.

Quando descobrir uma forma de verificar se a seção de pesca for um sucesso/fracasso adicionar ela pra o processo de antes de salvar, para que o arquivo seja salvo com um S ou um F no final do seu nome (caso seja interessante enviar arquivos de fracasso, se não, simpliesmente não salve os arquivos de fracasso).

Atualizar GUI

Remover opção de selecionar resolução/zoom e mudar totalmente a página de configurações

Melhora na detecção da pesca

Primeiro fazer template-matching da área de pesca como já é feito. Selecionar a melhor dessas áreas e dentro dela começar a procurar pelo peixe.
Isso é melhor porque o peixe não muda (em alguns casos muda, mas por enquanto vamos dizer que não) como a área da pesca.

Adicionar opção de atualizações críticas

Fazer que o programa feche caso seja percebido uma atualização crítica no site. Para isso, o modelo do Version control tem que ter um check-box de "Atualização crítica", que quando o programa acessar o site e receber, aparece um pop-up de atualização (semelhante ao que já tem, mas com o símbolo de atenção a invés do de informação) que ao ser fechado, fecha o programa junto, pra evitar que o usuário use o programa ser atualizar.

Adicionar botão padrão de ação do jogo

Quando é aberto pela primeira vez, o programa deve verificar o save file do usuário e já setar o botão da pesca como o mais usado nos saves da pessoa. Caso não haja um botão mais usado, setar pro botão do save mais recente.

Fazer enviar data automaticamente pelo "save_data.py"

Colocar pro arquivo enviar os dados quando ele salva os dados no "training_data.py". para isso a função teria q receber um parâmetro True/False, (do checkbox de enviar automaticamente) para saber se deve enviar ou nçao os dados assim que acabar de salvar. Além disso, vai ter que importar a funação de enviar os dados no "save_data.py" e chamar a função após salvar , caso o check box esteja True )(que deve estar por default pq fodasse)

Simular cliques de forma probabilística, a fim de fazer o retângulo se mover mais naturalmente (suave).

Afim de desacelerar o movimento do retângulo verde ao se aproximar do peixe, podemos simular o clique da tecla de ação de acordo com uma função probabilística, que retorna um número entre 0 e 1, ao receber a distância entre os dois..

A função deve receber a distância do centro do retangulo verde até o centro do peixe, e retornar um número entre 0 e 1, representando a probabilidade que deve ser clicado a tecla de ação. Essa probabilidade será a quantidade de vezes que o botão será clicado, em média.

Esse número deverá ser passado para outra função que irá simular o clique da tecla de ação de acordo com a probabilidade. Exemplo:

if random.random() =< click_probability(distance):
    simulate_action_key()
  1. Se a distância entre os 2 forem 0, a função deve retornar 0.5, pois isso fará que o retângulo fique parado com o peixe dentro.

  2. Se a distância for MUITO positiva, ou seja, o peixe estiver MUITO acima do retângulo, o valor retornado deve ser próximo de 1, porém a cada ciclo deve-se diminuir (não linearmente) até que a distância se torne 0, causando a situação 1.

  3. Se a distância for MUITO negativa, ou seja, o retângulo estiver muito acima do peixe, o valor retornado deve ser próximo de 0, mas a cada ciclo deve aumentar, a fim de desacelerar a queda do retângulo à 0, quando eventualmente a distância chegar a 0.

Checar automaticamente se a seção foi um fracasso antes de enviá-la

Quando descobrir uma forma de verificar se a seção de pesca foi um sucesso/fracasso adicionar ela pra o processo de antes de salvar, para que o arquivo seja salvo com um nome diferente para o caso do fracasso (caso seja interessante enviar arquivos de fracasso, se não, simplesmente não salve esses arquivos).

Grabscreen fullscreen error

Grabscreen captures the screen beggining from the 0,0 point (top-left point of the screen), and not from where the game window is located.

This makes the script to not capture the lower-right part of the screen, if the game is windowned. The next image shows what the grabscreen function returns.

But it works. Don't know what to do now 🤷

Imagem

Fazer tela de carregamento

Quando inicializar o programa, mostrat uma tela simples de carregamento, como a do GitKraken, onde é tentada a conexão com o servidor. Caso não haja sucesso com a conexão, o programa entra em modo offline e no lugar do label do nome do usuário aparece um link para retentar a conexão. Assim pode ser deletado o thread que tenta reconectar sempre ao servidor e tem a vantagem de simplificar o carregamento das informações da GUI.
Fazer a tela de carregamento ser um QDialog separado, que quando fechado com sucesso (conexão realizada) abre o QMainWindow em modo normal, mas caso seja fechado com erro (sem conexão), abre o QMainWindow em offline.

Change SaveData validation to AfterProcessing

Make SaveData only capture BGR images from the screen (and save them to a file if they exceed a size limit so it does not overflow RAM), then make AfterProcessing analyse all BGR frames and convert it to gray images to send to the server. In the CNN bot, the AfterProcessing will need to only verify if the session was a failure or not (as it is right now). In the number-data-driven machine learning, AfterProcessing will need to measure all distances in every frame

This allows for a series of improvements:

  • Grabscreen can run faster (more FPS)
  • Switching to number-data-driven machine-learning is easier, by only changing the validation step.
  • Data processing is faster overall, as it will be posible to use GPU acceleration (sending all data to the GPU is faster than sending individual frames for analysis)

Notificação de mudar as settings está errada

Não é uma boa idea fazer ela aparecer caso não tenha a pasta "Training Data".
Uma melhor ideia seria ver se ter um arquivo na primeira inicialização e fazer o pop-up aparecer, com 2 botões ("OK" | "No") e caso o usuário clique em "Ok" o arquivo e removido e o popup não aparece mais. Caso clique em "No" o arquivo não é removido e a mensagem aparecerá na proxima vez.

Adicionar "ignorar pop up de login" no config.json

Escrever na config.json uma opção de "ignore login popup" para que não haja a inicialização do popup no startup do programa. Fazer ele escrever True (para ignorar) quando a tela de login for rejeitada, e False quando o usuário logar em uma conta (assim, quando ele deslogar vai aparecer novamente o popup)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.