Add support for multiple AI-controlled players

This commit is contained in:
Maximilian Moser
2024-03-04 23:14:11 +01:00
parent 0dd62af930
commit 5d4b3c55c6
2 changed files with 19 additions and 6 deletions

View File

@@ -1,10 +1,10 @@
#!/bin/env python3
import abc
import argparse
import dataclasses
import math
import random
import sys
from typing import List
import pygame
@@ -157,7 +157,6 @@ dt = 0
# set up board
sw, sh = screen.get_width(), screen.get_height()
ai = AI()
maxman = Man(pygame.Vector2(sw / 4, sh / 4), name="Maxman")
blackman = Man(
pygame.Vector2(sw * 0.75, sh * 0.25),
@@ -189,8 +188,20 @@ manman = Man(
players = [maxman, blackman, chrisman, manman]
food = Food.new()
if any([arg in ["--ai", "-a"] for arg in sys.argv]):
ai.hook(blackman)
parser = argparse.ArgumentParser()
parser.add_argument(
"--ai",
type=int,
choices=[0, 1, 2, 3, 4],
default=1,
help="number of AI players",
)
args = parser.parse_args()
ais = []
for i in range(args.ai):
ai = AI()
ai.hook(players[-i - 1])
ais.append(ai)
while running:
# check recent events
@@ -240,7 +251,9 @@ while running:
)
else:
ai.decide()
for ai in ais:
ai.decide()
for p in players:
p.handle_input(keys, dt)