AI Lab Assignment # 3
AI Lab Assignment # 3
ASSIGNMENT # 3
Name: Anas Qazi
Reg#: 36444
Program: BSCS
____________________________________________________________________________________
from com.environment import Environment
from com.environment import Room
from com.agent import VaccumAgent
class TwoRoomVaccumCleanerEnvironment(Environment.Environment):
'''
classdocs
'''
def __init__(self, agent):
'''
Constructor
'''
self.r1 = Room.Room('A','dirty')
self.r2 = Room.Room('B','dirty')
self.agent = agent
self.currentRoom = self.r1
self.delay = 1000
self.step = 1
self.action = ""
def executeStep(self,n=1):
for _ in range(0,n):
self.displayPerception()
self.agent.sense(self)
res = self.agent.act()
self.action = res
if res == 'clean':
self.currentRoom.status = 'clean'
elif res == 'right':
self.currentRoom = self.r2
else:
self.currentRoom = self.r1
self.displayAction()
self.step += 1
def executeAll(self):
raise NotImplementedError('action must be defined!')
def displayPerception(self):
print("Perception at step %d is [%s,%s]" %
(self.step,self.currentRoom.status,self.currentRoom.location))
def displayAction(self):
print("------- Action taken at step %d is [%s]" %(self.step,self.action))
if __name__ == '__main__':
vcagent = VaccumAgent.VaccumAgent()
env = TwoRoomVaccumCleanerEnvironment(vcagent)
env.executeStep(50)
___________________________________________________________________________________
class Room:
def __init__(self,location,status="dirty"):
self.location = location
self.status = status
__________________________________________________________________________________
from com.agent import Agent
class VaccumAgent(Agent.Agent):
'''
classdocs
'''
def __init__(self):
'''
Constructor
'''
pass
def sense(self,env):
self.environment = env
def act(self):
if self.environment.currentRoom.status == 'dirty':
return 'clean'
if self.environment.currentRoom.location == 'A':
return 'right'
return 'left'