Download presentation
Presentation is loading. Please wait.
Published byDominic Heath Modified over 8 years ago
1
CHAPTER 13B Object Oriented Programming (Tutorial)
2
Course Evaluations Today you will evaluate the lecture portion of the course Call number: 46738 Semester: 5 On Monday we will evaluate the TAs
3
Tutorial: Maze Program Problem Analysis Create a program in which a mouse navigates a maze looking for the hidden cheese The maze consists of a two-dimensional array of cells The Mouse is an object created from a Mouse class definition Each cell in the maze is an object created from a Cell class defintion
4
Problem Analysis
5
Development (continued)
6
The Mouse Class Definition Class variables Various icons of mouse facing different directions private data members row and column locations of the mouse in the maze ( row and col ) Icon private methods Default constructor – Mouse()
7
The Mouse Class Definition (continued) public methods Initializing constructor – Mouse(int, int) Accessor methods getRow() getCol() getIcon() Mutator methods setRow() setCol()
8
The Mouse Class Definition (continued) public methods Utility methods goRight() goLeft() goUp() goDown()
9
The Mouse Class Definition (continued)
13
The Cell Class Definition private data members row : int – row location of Cell in maze col : int – column location of Cell in maze access : bool – indicates whether Mouse can enter this Cell hasCheese : bool – indicates whether cheese is in this Cell private methods Default constructor – Cell()
14
The Cell Class Definition (continued) public methods Initializing constructor – Cell(int, int) Accessor methods getRow() getCol() getAccess() getCheese() Mutator methods setAccess() setCheese()
15
The Cell Class Definition (continued)
18
Design A maze consists of rows and columns Rows run horizontally Columns run vertically Each cell has a row and column location
19
Design (continued)
22
The interface contains two buttons (used to start and stop the animation) A Timer control is used to perform Mouse movement The Mouse moves from one Cell to another Previous cells are colored brown When the mouse reaches the cell with the cheese a MessageBox pops up
23
Design (continued)
24
The size of Cells and the number of rows and columns of Cells in the maze are constants
25
Design (continued)
26
The maze is a two-dimensional array of Cells Use the Array template as a foundation for this
27
Design (continued) Instance variables include the mouse, maze and a variable to indicate which direction the mouse is moving
28
Design (continued) Creating the maze requires the instantiation of 320 Cell objects (20 in each row)
29
Design (continued) The Form1_Load() event will construct the interface, complete with maze, mouse and cheese
30
Design (continued) Drawing the maze (nested loops for rows and columns)
31
Design (continued) Drawing and positioning the Mouse
32
Design (continued) Keep the mouse in the maze by checking for edges
33
Development Interface construction (only two buttons) Timer control used to control movement Form1_Load() will draw the maze initially The maze and mouse are redrawn in each Timer_Tick() event
34
Development (continued)
35
The Mouse and Cell classes must both be included at the top of the client (Form1.h)
36
Development (continued) Instance variables, constants and object handles
37
Development (continued) Form1_Load() constructs the maze
38
Development (continued) The start button creates the mouse and cheese
39
Development (continued) The mouse and cheese icons are displayed in Rectangles
40
Development (continued) The maze cells are drawn in drawMaze( )
41
Development (continued) At each interval of the Timer, its Tick() event Redraws the maze Draws the mouse at its new location The animation can be halted with btnStop_Click()
42
Development (continued) The Timer1_Tick() event Creates a Rectangle based on the cell in which the mouse currently resides ( oldRect )
43
Development (continued) If mouse is not at edge then move in current direction
44
Development (continued) If mouse moves into cell with cheese congratulations! If mouse was at an edge then choose new direction
45
Development (continued) Check for edges by checking row and column
46
Testing When btnStart is clicked Maze appears (16 rows x 20 columns of cells) Mouse and cheese appear Mouse moves across the maze from left to right When mouse reaches the edge it turns and follows the edges around Reposition the cheese so that the mouse finds it in its path
47
On Your Own Stronger mutators Do not allow negative values Private instance methods verifyRow() and verifyCol() for Mouse class New UML class diagram Add verifyRow() and verifyCol() to Mouse UML diagram
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.