Presentation 1: Planning & Design

Download Report

Transcript Presentation 1: Planning & Design

Presentation 1: Planning & Design
Software Engineering Team 2
CIS 540, Fall 2001
The team
Dave Bacon
Jason Bullok
Justin Hinson
Matt Hoosier
Chris Orosco
Description of project
A classical strategy
game, Hunt the
Wumpus, requires a
player to navigate
through a cave to slay a
man-eating beast (the
wumpus).
Description of project (2)
Our task is to design and implement a
multiagent version of the game such that:
– The agents play the game without help from
human operators.
– The agents can cooperate to hunt the wumpus
more effectively.
Introduction: Rules
A cave consists of
an n x m grid of
cells.
Introduction: Rules (2)
Players may walk from one cell to another
cell that is directly north, south, east, or
west of their location (no diagonal moves).
Some cells contain bottomless pits.
Entering such a cell kills the player.
Introduction: Rules (3)
The wumpus (immobile) is located in a
randomly chosen cell. A player is eaten and
dies if he enters the wumpus’s cell.
A pot of gold is located in one cell. A
player is awarded bonus points for finding
and collecting the gold.
Introduction: Rules (4)
The player may kill the wumpus by firing
an arrow into the wumpus’s cell when the
player occupies an adjacent cell.
Introduction: Sensory information
 The player begins the game with no knowledge
of the cave’s layout or contents.
 A player smells a stench if his location is adjacent
to the wumpus.
 The player feels a breeze if his location is next to
a bottomless pit.
 The player sees a glitter if the gold is in his
current room.
Roles
Person
Task
Dave Bacon
GUI framework
Jason Bullok
GUI rendering
Justin Hinson
Core agent
implementation
Inter-agent
cooperation
Main game engine
Matt Hoosier
Chris Orosco
Reporting methods
Code reviews each meeting
Utilize pluggable architecture by
demonstrating new functionality at each
meeting
Conversations with individual team
members
Risks
Nobody on team has prior A.I. experience.
Can we successfully re-implement the
simulator engine?
Difficulty compartmentalizing the agent
implementation – nextMove() algorithm
will depend on all state information
Risk reduction
Study AI texts. Specific sections of
textbooks exist for the “Wumpus World”
problem.
Encapsulate the game logic inside
abstracted “Agent” interface so that rest of
project can proceed while logic is under
development.
Resource requirements
Hardware
– Server for CVS repository. Will be supplied by
a team member.
Software
– Java 2 development kit
Other
– Artificial Intelligence texts
Work Breakdown
Task
A
B
C
Description
Define project statement
Produce object model
Implement engine skeleton
Dep.
D
E
F
Devise inter-agent strategy
Build GUI around engine
Implement logic in agent
B
C
C
G
Integrate agent communication
and strategy with core algorithm
Integration, testing
D, F
H
A
B
G, E
A: Define project stmt.
Overall time: 1.5 weeks
– Search web for similar projects (3 days)
– Determine which set of rules to use for game
(1 days)
– Determine level of cooperation needed
between agents ( 3 days )
– Integrate above results into project statement
as given in this presentation. (2 days)
B: Produce object model
Overall time: 1 week
– Produce UML diagram of existing simulator (2
days)
– Determine what abstractions are re-usable (1
day)
– Create a model that allows data hiding,
encapsulation, and interchangeability (3 days)
C: Implement skeleton
Overall time: 1 week
– Generate stub interfaces for basic compilation
(4 days)
– Add ability for top-level engine to iterate
through agents’ turns and relay units of
communication (4 days)
D: Inter-agent protocols
Overall time: 3 weeks
– Devise basic algorithm (2 weeks)
– Map algorithm onto extension of object model
(2 days)
– Implement cooperative agents as Agent objects
(7 days)
E: UI
 Overall time: 5 weeks
– Define API (interfaces) that allows generic
printAgent() functionality (1 week)
– Wrap a temporary text interface around the game
engine (1 week)
– Implement graphical ability to display current
“snapshot” of game (2 weeks)
– Develop cell-rendering modules that handle delegation
of drawing characters (2 weeks)
– Add animation to above cell renderers (2 weeks)
– Integrate cell-renderers with general GUI framework
(1 week)
F: “Smart” agent
 Total time: 3 weeks
– Build a stand-in agent with no intelligence (3 days)
– Add ability for agent to determine which squares are
safe/unsafe (2 days)
– Implement safe route-calculation algorithm (5 days)
– Logic for choosing among unsafe squares (3 days)
– Find fastest way to kill wumpus once somebody
discovers his location (4 days)
– Add peer-to-peer passing of basic perception
information (4 days)
G: Integrating strategy
Total time: 2 weeks
– Adapt single-agent game logic with multiagent strategy algorithm (1 week)
– Integration testing on above result (1 weeks)
H: Overall testing
Total: 1 week
– Combine GUI and simulation engine (2 days)
– Test result ( 2 days )
– Write documentation (2 days)
Schedule: Gantt chart
Project def.
O.M.
Skeleton
Cooperation
Graphics
Smart agent
Integration
Testing
Schedule: projections
Schedule milestones:
–
–
–
–
–
Design finished: Sep. 24
Skeleton done: Oct. 4
GUI done: Oct. 22
Logic done: Nov. 22
Finish: Nov. 30
Design: background
Existing simulator
is shown at left.
This engine is
useful as a guide,
but is not reusable.
Design: old game engine diagram
Design: old engine problems
 Model is entangled, not much abstraction.
 Poor encapsulation (public member variables
abound)
 “Everybody knows about everybody”
 Long, complex algorithms with no
documentation/comments
Design: new object model
Designs: benefits of new model
Pluggability:
– Programming against interfaces allows
swapping modules in/out at will
– Allows incremental development of
intelligence, inter-agent strategy