Coder Social home page Coder Social logo

jonnysilva / seaofwar Goto Github PK

View Code? Open in Web Editor NEW
4.0 4.0 0.0 1.28 MB

Jogo de Batalha Naval de um jogador contra um agente inteligente. O jogo faz uso de Algoritmo Genético para IA (Inteligência Artificial) onde está vai aprender a realizar as melhores jogadas contra o jogador.

Python 100.00%
battleship-game board-game game game-development genetic-algorithm numpy pandas python3 vscode

seaofwar's People

Contributors

brettas avatar jonnysilva avatar matheus-srego avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

seaofwar's Issues

BTSP-21 | BUG-FIX | Consertar o erro que remove os dois submarinos.

Durante os testes foi verificado que as siglas 'S' dos dois submarinos são removidas para qualquer um dos dois submarinos, para consertar é necessário modificar:

  • 1. Substituir o nome do Porta-Aviões por um nome real.
    Nome: Porta-Aviões NAe São Paulo

  • 2. Substituir o código do Porta-Aviões.
    Código: SAO_PAULO

  • 3. Substituir o nome do Encouraçado por um nome real.
    Nome: Encouraçado Minas Geraes

  • 4. Substituir o código do Encouraçado.
    Código: MINAS_GERAES

  • 5. Substituir o nome do Cruzador por um nome real.
    Nome: Cruzador Bahia

  • 6. Substituir o código do Cruzador.
    Código: BAHIA

  • 5. Substituir o nome do Navio-Patrulha por um nome real.
    Nome: Navio-Patrulha Grajaú

  • 6. Substituir o código do Navio-Patrulha.
    Código: GRAJAU

  • 7. Substituir os nomes dos dois submarinos por nomes reais.
    Nome 1: Submarino Tupi
    Nome 2: Submarino Riachuelo

  • 8. Substituir o código dos dois submarinos.
    Código 1: TUPI
    Código 2: RIACHUELO

BTSP-14 | Criar funcionalidade de fim de jogo.

Nesta tarefa é necessário criar três funcionalidade:

  • 1. Criar o fim do jogo quando um dos jogadores (SkyNet ou jogador humano) derrubar todos os barcos do adversário.
  • 2. Criar mensagem de termino quando um dos jogadores ganhar.
  • #41

BTSP-22 | REFACTOR-03 | Realizar refatoração de alguns pontos.

  • Refatorar a estrutura de pastas do projeto.
  • #69
  • #68
  • #67
  • #66
  • #65
  • Refatorar .gitignore.
  • Refatorar mensagens.
  • Aplicar cores na tabela, nas mensagens de aviso, nos nomes e no título.
  • Supressão de erro quando o usuário não insere apenas dois caracteres no ataque ou posicionamento.
  • Mudar título do menu.
  • Mudar nome da pasta 'regras_de_negocio' para 'docs'.

Verificar necessidade


Tela - Regras do Jogo:

  • Reduzir o espaço entre o título "Regras do Jogo - Batalha Naval" e o quadro de regras.
  • Substituir o caractere '*' por outros caracteres que faça parecer realmente um quadro.

BTSP-23 | BUG-FIX | Ajustar o método de conversão de letras da Grid para números na classe utils.

O método não contém as letras de todas as embarcações e não está incluindo o submarino a mais:

def convert_grid_to_skynet_solution(grid):
    gridArray = np.asarray(grid)
    desired_array1 = np.asarray([[j.replace(' ', '0') for j in i] for i in gridArray])
    desired_array2 = np.asarray([[j.replace('A', '1') for j in i] for i in desired_array1])
    desired_array3 = np.asarray([[j.replace('B', '1') for j in i] for i in desired_array2])
    desired_array4 = np.asarray([[j.replace('C', '1') for j in i] for i in desired_array3])
    desired_array5 = np.asarray([[j.replace('P', '1') for j in i] for i in desired_array4])
    desired_array = np.asarray([[j.replace('S', '1') for j in i] for i in desired_array5])

    desired_arrayInt = desired_array.astype(np.int)

    return desired_arrayInt

DOC-01 | Pesquisar projetos de exemplo.

Nessa tarefa é necessário procurar e documentar os links de dos projetos do jogo Batalha Naval e para a implementação do jogo com Algoritmos Genéticos.

BTSP-11 | BUG-FIX | Resolver o problema da remoção de coordenada.

Durante a inserção do barcos, pelo jogador humano, foi verificado que caso o jogador queira editar a coordenada/posição do barco o mesmo não ocorre.

  • O barco não é removido da matriz.
  • O fluxo não retorna para inserir novamente o barco do momento. Em vez disso o fluxo retorna para a mensagem para posicionar o barco.

Fluxo 1

image

Fluxo 2

image

Fluxo 3 - Erro!

image

BTSP-12 | BUG-FIX | Resolver o problema de ataque/tiros no tabuleiro adversário.

Nesta tarefa é necessário consertar o bug que trava os ataques apenas para o jogador I.A. assim o jogador humano apenas realizando um ataque. Ocorre o seguinte fluxo, o jogador humano realiza seu ataque ao tabuleiro da I.A. e passa o ataque para o jogador I.A., entretanto após o ataque da I.A. ocorre um loop em que a I.A. ataca algumas vezes, dando a vez muito depois para o jogador humano. Após algumas jogadas o fluxo de tiros, antes de acabar todas as vidas, termina e fecha o jogo abruptamente.

  • 1. Melhorar a lógica do algoritmo para os ataque tabuleiros.
  • 2. Remover o loop em que o jogador I.A. entra.
  • 3. Verificar se o resultado realmente está sendo inserido ao resultado final.

Fluxo 1

image

Fluxo 2

image

Após três ataques o jogador 1 volta a atacar.

Fluxo 3 - Erro!

image

Após o erro..

image

BTSP-03 | Criar tela de menu

  • Criar a tela de menu
  • Criar a funcionalidade de sair
  • Criar as mensagens de erro caso selecione um número que não exista no menu

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.