Analisando propostas

Uma Ia para um jogo de grosso modo

Publicado em 24 de Janeiro de 2025 dias na TI e Programação

Sobre este projeto

Aberto

Preciso de um programador que consiga automatizar esse processo de caçada dentro do jogo https://www.youtube.com/watch?v=DKAEh3wPe9s&t=9s exemplo de caçada dentro de jogo
Fiz um pouco do codigo porém a seta não está identicando a direção certa sempre
Meu codigo import cv2
import pyautogui
import numpy as np

# Coordenadas da área da seta no jogo (ajuste essas coordenadas)
x, y, largura, altura = 7, 322, 24, 200  # Exemplo: ajuste conforme a posição no jogo

# Captura da área da seta
screenshot = pyautogui.screenshot(region=(7, 322, 24, 24  ))
screenshot.save("seta_atual.png")  # Salvar a captura para debug (opcional)

# Converte a captura para escala de cinza
imagem_atual = cv2.cvtColor(np.array(screenshot), cv2.COLOR_BGR2GRAY)

# Lista de referências e suas direções
referencias = {
    "Baixo": "baixo.png",
    "Cima": "cima.png",
    "Direita": "direita.png",
    "Esquerda": "esquerda.png"
}

# Variáveis para armazenar o melhor resultado
melhor_correlacao = -1
melhor_direcao = None

# Loop pelas imagens de referência
for direcao, arquivo_referencia in referencias.items():
    # Carrega a imagem de referência em escala de cinza
    referencia = cv2.imread(arquivo_referencia, cv2.IMREAD_GRAYSCALE)

    # Redimensiona a referência para corresponder ao tamanho da área capturada, se necessário
    referencia = cv2.resize(referencia, (imagem_atual.shape[1], imagem_atual.shape[0]))

    # Realiza a correspondência de template
    resultado = cv2.matchTemplate(imagem_atual, referencia, cv2.TM_CCOEFF_NORMED)

    # Encontra a maior correlação (match)
    _, max_val, _, _ = cv2.minMaxLoc(resultado)

    # Atualiza a melhor correspondência, se necessário
    if max_val > melhor_correlacao:
        melhor_correlacao = max_val
        melhor_direcao = direcao

# Mostra o resultado final
print(f"A seta está apontando para: {melhor_direcao} (correlação: {melhor_correlacao:.2f})")

# Para debug, você pode mostrar a imagem capturada
cv2.imshow("Seta Capturada", imagem_atual)
cv2.waitKey(0)
cv2.destroyAllWindows()

Contexto Geral do Projeto

Preciso de um programador que consiga automatizar esse processo de caçada dentro do jogo https://www.youtube.com/watch?v=DKAEh3wPe9s&t=9s exemplo de caçada dentro de jogo Fiz um pouco do codigo porém a seta não está identicando a direção certa sempre Meu codigo import cv2 import pyautogui import numpy as np # Coordenadas da área da seta no jogo (ajuste essas coordenadas) x, y, largura, altura = 7, 322, 24, 200 # Exemplo: ajuste conforme a posição no jogo # Captura da área da seta screenshot = pyautogui.screenshot(region=(7, 322, 24, 24 )) screenshot.save("seta_atual.png") # Salvar a captura para debug (opcional) # Converte a captura para escala de cinza imagem_atual = cv2.cvtColor(np.array(screenshot), cv2.COLOR_BGR2GRAY) # Lista de referências e suas direções referencias = { "Baixo": "baixo.png", "Cima": "cima.png", "Direita": "direita.png", "Esquerda": "esquerda.png" } # Variáveis para armazenar o melhor resultado melhor_correlacao = -1 melhor_direcao = None # Loop pelas imagens de referência for direcao, arquivo_referencia in referencias.items(): # Carrega a imagem de referência em escala de cinza referencia = cv2.imread(arquivo_referencia, cv2.IMREAD_GRAYSCALE) # Redimensiona a referência para corresponder ao tamanho da área capturada, se necessário referencia = cv2.resize(referencia, (imagem_atual.shape[1], imagem_atual.shape[0])) # Realiza a correspondência de template resultado = cv2.matchTemplate(imagem_atual, referencia, cv2.TM_CCOEFF_NORMED) # Encontra a maior correlação (match) _, max_val, _, _ = cv2.minMaxLoc(resultado) # Atualiza a melhor correspondência, se necessário if max_val > melhor_correlacao: melhor_correlacao = max_val melhor_direcao = direcao # Mostra o resultado final print(f"A seta está apontando para: {melhor_direcao} (correlação: {melhor_correlacao:.2f})") # Para debug, você pode mostrar a imagem capturada cv2.imshow("Seta Capturada", imagem_atual) cv2.waitKey(0) cv2.destroyAllWindows()

Categoria TI e Programação
Subcategoria Inteligência Artificial
Tamanho do projeto Médio
Isso é um projeto ou uma posição de trabalho? Um projeto
Disponibilidade requerida Conforme necessário

Prazo de Entrega: Não estabelecido

Habilidades necessárias