Presentation is loading. Please wait.

Presentation is loading. Please wait.

CHAPTER 13B Object Oriented Programming (Tutorial)

Similar presentations


Presentation on theme: "CHAPTER 13B Object Oriented Programming (Tutorial)"— Presentation transcript:

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)

10

11

12

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)

16

17

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)

20

21

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


Download ppt "CHAPTER 13B Object Oriented Programming (Tutorial)"

Similar presentations


Ads by Google