The World

advertisement
Jack O’Hare
Gerardo Gonzalez
Jennifer Foley
Vanessa Cheney
Outline
• Software Architecture
• Implementation Problems and Solutions
• Defect Prevention
• Planned and Actual Schedules
• Future Enhancements
• Conclusion
• References
• Demonstration
• Questions
Software Architecture
•Main Software Components

AVL Tree

The World

Graphical User Interface (GUI)

Back End
Software Architecture
AVL Tree
Software Architecture
Graphical User Interface
Software Architecture
The World
•The World
Main structure
 Keep state of changing
elements in the GUI

•Elements





Live cells (Held in an AVL
tree as Coordinates)
Topologies
Grid width and height
Cursor position
View port origin
Software Architecture
Graphical User Interface
•Tick Event

Checks the running flag
•Key Event

Changes the world components
•Redraw Event

Called every time a key event happens, on
every tick, and draws elements in the
window
Software Architecture
Graphical User Interface – Key Events
Software Architecture
GUI – Redraw Event
Software Architecture
GUI – Redraw Event
Software Architecture
GUI – Redraw Event
Software Architecture
GUI- Tick Event/Back End
•
•gerardosNextWorld
putInTree
allAliveNextRound
Gives the next state
Makes
a tree
the
Takes all
the with
nodes
from
the current
cells
that
have
that need
to bebeen
state
determined
alive for
checked
next round
 Determines
whether
getNodesToCheck
they are alive or
 Returns a list of the
dead
current live cells and
 Applies rules
all their neighbors
depending on their
life state
The rest of the interaction happens through key events
 Returns a list of all the
cells for the next
state


•
Software Architecture
•Topologies





Torus
Klein Bottle
Möbius Strip
Infinite Hexagonal Grid
Regular
Software Architecture
Topology – Hex Grid
Software Architecture
Proving Software Correctness -- Theorems
•cell-consists-of-x-and-y
•cell-left-neighbor
•cell-right-neighbor
•hint-neighbor-induct
•torus-top-wrap-around-neighbor
•klein-bottle-top-bottom-wrap-around
•mobius-strip-top-bottom-wrap-around
•rectangle-neighbors
Implementation Problems and
Solutions
•Red Black Tree vs. AVL Tree

AVL tree code available
•Coordinate Implementation Issue

Neighbor functions affected by problem
with coordinates
•Tree Functions Not Admitting to ACL2

Changes had to be made, since we use
Coordinates as nodes
•Slow Run Time

Recursive functions had to be changed to
speed up runtime
Remaining Implementation Issues
•Cursor Issue

Does not behave correctly when the grid
panning is being used
Defect Prevention
•Google Code Repository



Specific rules when committing code
Version control
Can revert if necessary
•Google Code Provides Wiki




Bug tracker for issues
Downloads page for document posting
Link to source code
Regression test documentation
Planned and Actual Schedules
Planned Progress Graph
t8
t7
Deliverables
t6
t5
t4
t3
t2
t1
1/15
1/25
2/4
2/14
2/24
3/6
Date
3/16
3/26
4/5
4/15
4/25
Planned and Actual Schedules
Actual Progress Graph
t8
t7
Deliverables
t6
t5
t4
t3
t2
t1
1/15
1/25
2/4
2/14
2/24
3/6
Date
3/16
3/26
4/5
4/15
4/25
Future Enhancements
•Addition of Click Events

Currently uses only mouse events
•Display the Grid Using Better Graphics

Could also create a nicer interface given click
events
•Cost of Enhancements



Implementation of click events
Implementation of graphics
Total cost of above mentioned enhancements,
including research time would be around twelve
hours
Conclusion
•Software Architecture
•Implementation Problems and Solutions
•Defect Prevention
•Planned and Actual Schedules
•Future Enhancements
References
•Google Code Website
 http://code.google.com/p/conway-topo/
•Wikipedia Entry for Conway’s Game of Life
 http://en.wikipedia.org/wiki/Conway%27s_game_of_life
Download