Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se

Solucionado (ver solução)

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