为了更多地了解神经网络和 NEAT,我开始构建一个可以使用 NEAT 打乒乓球的 AI。然而,似乎在不同的世代中神经网络的输出并没有改变。我尝试使用配置文件并更改各种权重。然而,我已经没有主意了。
def main_game(genomes,config):
pygame.init()
WIN = pygame.display.set_mode(SIZE)
clock = pygame.time.Clock()
running = True
player1,player2 = Paddle(True), Paddle(False)
ball = Ball()
neat1 = neat.nn.FeedForwardNetwork.create(genomes[0][1],config)
neat2 = neat.nn.FeedForwardNetwork.create(genomes[1][1],config)
genomes[0][1].fitness = 0
genomes[1][1].fitness = 0
def activate(player1,ball,nn):
output = nn.activate((player1.x,player1.y,ball.x,ball.y))[0]
if output >= 0 and output <= 1/3:
player1.up()
elif output >= 1/3 and output <= 2/3:
player1.down()
while running:
clock.tick(30)
activate(player1,ball,neat1)
activate(player2,ball,neat2)
WIN.fill((0,0,0))
lose = ball.move()
if lose == 1:
genomes[0][1].fitness -=500 #genomes[0] = None
running = False …Run Code Online (Sandbox Code Playgroud)