aboutsummaryrefslogtreecommitdiffstats
path: root/src/environment.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/environment.py')
-rw-r--r--src/environment.py56
1 files changed, 56 insertions, 0 deletions
diff --git a/src/environment.py b/src/environment.py
new file mode 100644
index 0000000..94f9cbf
--- /dev/null
+++ b/src/environment.py
@@ -0,0 +1,56 @@
+# environment.py
+# --------------
+# Licensing Information: You are free to use or extend these projects for
+# educational purposes provided that (1) you do not distribute or publish
+# solutions, (2) you retain this notice, and (3) you provide clear
+# attribution to UC Berkeley, including a link to http://ai.berkeley.edu.
+#
+# Attribution Information: The Pacman AI projects were developed at UC Berkeley.
+# The core projects and autograders were primarily created by John DeNero
+# (denero@cs.berkeley.edu) and Dan Klein (klein@cs.berkeley.edu).
+# Student side autograding was added by Brad Miller, Nick Hay, and
+# Pieter Abbeel (pabbeel@cs.berkeley.edu).
+
+
+#!/usr/bin/python
+
+class Environment:
+
+ def getCurrentState(self):
+ """
+ Returns the current state of enviornment
+ """
+ abstract
+
+ def getPossibleActions(self, state):
+ """
+ Returns possible actions the agent
+ can take in the given state. Can
+ return the empty list if we are in
+ a terminal state.
+ """
+ abstract
+
+ def doAction(self, action):
+ """
+ Performs the given action in the current
+ environment state and updates the enviornment.
+
+ Returns a (reward, nextState) pair
+ """
+ abstract
+
+ def reset(self):
+ """
+ Resets the current state to the start state
+ """
+ abstract
+
+ def isTerminal(self):
+ """
+ Has the enviornment entered a terminal
+ state? This means there are no successors
+ """
+ state = self.getCurrentState()
+ actions = self.getPossibleActions(state)
+ return len(actions) == 0