Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Algoritmo para ajeitar slots em uma mochila em um game, qual curso fazer?

Olá, estou querendo organizar slots de uma mochila(bag) em um jogo, como por exemplo irei usar o Resident Evil 4, no qual você tem um mochila com x slots e você tem que ajeitar as armas para conseguir guardar mais coisas, vale ressaltar que as armas tem tamanhos diferentes e podem ser giradas.

Imagem demostrando a mochila: https://prnt.sc/opqzy0

Gostaria de fazer um algoritmo que aprenderia de acordo com tentativa e erro qual item colocar primeiro na mochila, sendo o objetivo final conseguir colocar todos os itens, ou a maior quantidade possível.

Pensei em utilizar uma matriz para representar a mochila, e talvez utilizar redes neurais para ele aprender a forma mais eficiente de colocar os itens dentro da mochila, qual curso vocês recomendariam dentro da área de machine learning para implementar esse algoritmo?

4 respostas

Oi Gustavo tudo bem?

Não é utilizado nenhum algoritmo de inteligência artificial para fazer essa automatização. Só basta o programa saber o tamanho da mochila, saber o tamanho de cada item, saber rotacionar os itens.

Ele pega um item vê se ele cabe na mochila percorrendo cada slot da mochila e vendo se dá para encaixar ele. Tudo isso em um for quadruplo, percorrendo o x e y da mochila e o x e y do item. Se não couber ele rotaciona e tenta denovo. Se não conseguir ele informa que o item não cabe na mochila.

Tem outros detalhes que tem de pensar. Mas por hoje cheguei até aqui, não tá 100% mas preciso dormir já rsrsrs. Veja se é mais ou menos isso que precisa. É uma página HTML, pois fiz em javascript.

https://gist.github.com/neoandrevictor/65f2d7aa47865573a0c13ed0ecf2d35c

Dei uma atualizada no código.

Quando clica no item no chão ele vai pra mochila automaticamente no primeiro jeito que ele conseguiu encaixar. Se você clica o item na mochila ele volta pro chão. O botão de ↻ rotaciona o item no chão.

Parei o código nessa parte, acho que dá pra adaptar pra linguagem que está usando e fazer umas melhorias em cima dele.

Qualquer dúvida estou a disposição.

Opa André, tudo bem? Desculpe a demora pra responder.

Primeiro, obrigado por disponibilizar um tempo e ainda programar em cima da dúvida que eu havia deixado.

Sim, essa é mais ou menos a proposta, mas a parte complicada começa depois disso, a proposta do algoritmo é ajeitar todos os itens que estão na mochila, quando um item novo item for adicionado, sempre procurando uma maneira de fazer caber mais itens.

Conforme o algoritmo que você executou ele simplesmente vai colocando os itens na mochila, ele não chega ajeitar os outros itens. Vou dar um exemplo:

Tem somente 2 espaços sobrando dentro da mochila, mas estão em cantos opostos, e você quer adicionar um item que ocupa 2 espaços, o algoritmo teria que ajeitar/girar todos os itens possível para organizar e deixar os dois espaços juntos, para então adicionar o item.

Por tal motivo pensei em utilizar alguma ferramenta de machine learning, pois são X possibilidades de jeitos que a mochila pode ficar e X possibilidades para ajeita-la.

Desde já, agradeço novamente.

solução!

Hum. Você quer q sempre encaixe.

É que Machine Learning tem que ensinar algo à máquina.

Pode fazer da seguinte forma.

O programa gera itens aleatoriamente.

Você arrasta o itens para a bolsa.

O programa sabe que você colocou todos os itens e salva aquele cenário na memória.

E você fica nesse loop treinando e treinando a máquina.

É isso que procura? Ou que tipo de treinamento automático tem em mente? Porque a máquina ela aprende sozinha mas você precisa ter em mente um algoritmo que faça ela aprender. Você tem que ensinar ela a aprender.

Sugiro essa formação para aprender mais a respeito https://cursos.alura.com.br/formacao-machine-learning