Compare commits

...

2 Commits
main ... time

Author SHA1 Message Date
0e7e1c922d
feat: time 2024-04-09 21:32:44 +08:00
f3afe492cf
feat: time 2024-04-09 21:32:39 +08:00
2 changed files with 16 additions and 2 deletions

11
game.py
View File

@ -650,6 +650,9 @@ class Game:
agentIndex = self.startingIndex agentIndex = self.startingIndex
numAgents = len(self.agents) numAgents = len(self.agents)
time_sum = 0
counter = 0
while not self.gameOver: while not self.gameOver:
# Fetch the next agent # Fetch the next agent
agent = self.agents[agentIndex] agent = self.agents[agentIndex]
@ -729,7 +732,13 @@ class Game:
self.unmute() self.unmute()
return return
else: else:
start = time.time()
action = agent.getAction(observation) action = agent.getAction(observation)
stop = time.time()
time_sum += (stop-start)
counter += 1
self.unmute() self.unmute()
# Execute the action # Execute the action
@ -762,6 +771,8 @@ class Game:
if _BOINC_ENABLED: if _BOINC_ENABLED:
boinc.set_fraction_done(self.getProgress()) boinc.set_fraction_done(self.getProgress())
print("TIME:", time_sum/counter)
# inform a learning agent of the game result # inform a learning agent of the game result
for agentIndex, agent in enumerate(self.agents): for agentIndex, agent in enumerate(self.agents):
if "final" in dir(agent): if "final" in dir(agent):

View File

@ -15,6 +15,7 @@
from util import manhattanDistance from util import manhattanDistance
from game import Directions from game import Directions
import random, util import random, util
import time
from game import Agent from game import Agent
from pacman import GameState from pacman import GameState
@ -162,7 +163,8 @@ class MinimaxAgent(MultiAgentSearchAgent):
Returns whether or not the game state is a losing state Returns whether or not the game state is a losing state
""" """
"*** YOUR CODE HERE ***" "*** YOUR CODE HERE ***"
return self.result(gameState, 0, self.depth)[1] action = self.result(gameState, 0, self.depth)[1]
return action
def result(self, state, agentIndex, depth): def result(self, state, agentIndex, depth):
if depth == 0 or state.isLose() or state.isWin(): if depth == 0 or state.isLose() or state.isWin():
@ -196,7 +198,8 @@ class AlphaBetaAgent(MultiAgentSearchAgent):
Returns the minimax action using self.depth and self.evaluationFunction Returns the minimax action using self.depth and self.evaluationFunction
""" """
"*** YOUR CODE HERE ***" "*** YOUR CODE HERE ***"
return self.result(gameState, 0, self.depth, -1e9, 1e9)[1] action = self.result(gameState, 0, self.depth, -1e9, 1e9)[1]
return action
def result(self, state, agentIndex, depth, alpha, beta): def result(self, state, agentIndex, depth, alpha, beta):
if depth == 0 or state.isLose() or state.isWin(): if depth == 0 or state.isLose() or state.isWin():