DATA STRUCTURE AND ALGORITHM PROJECT Fall2011 Group Members: Asma Rafi BS-3 Fatima Saleem BS-3 The object of the game is for the player to find their way to the end of the maze. The program is based on the 2-D array and the graphics(mainly drawLine), represented using Applet. o The goal of our project is to learn the implementation of a Data structure (2-D array). o To learn the inco-opertion of graphics and applets with the code. BUILT-IN CLASSES USED: java.applet.Applet; java.awt.Graphics; java.awt.event.KeyListener; java.swing.* 2-D array for creation of Maze. drawLine() method for walls. fillOval() method for player. 6 FALSE 4 FALSE 7 FALSE TRUE 5 TRUE 8 FALSE FALSE TRUE TRUE FALSE FALSE FALSE 3 TRUE 2 FALSE FALSE TRUE 1 TRUE FALSE FALSE 0 FALSE TRUE CREATION OF MAZE: I. Create a Boolean 2-D array for horizontal and vertical walls of the FALSE FALSE FALSE maze I. Set True for open walls and False for closed walls I. II. Draw lines using loop where walls are closed. Draw a player. I. Use keyListener to move the player(Up, Down Left and Right). II. Detect Collision of player with the walls and block using correct positions. RIGHT ARROW KEY: While pressing the right arrow key, if player’s horizontal position is greater than the coordinates of the closed wall, then assign players position to that particular value. LEFT ARROW KEY: While pressing the left arrow key, if player’s horizontal position is less than the coordinates of the closed wall, then assign players position to that particular value. UP ARROW KEY: While pressing the up arrow key, if player’s vertical position is less than the coordinates of the closed wall, then assign players position to that particular value. DOWN ARROW KEY: While pressing the down arrow key, if player’s vertical position is greater than the coordinates of the closed wall, then assign players position to that particular value. The ball starts from the top left corner of the maze. It moves along the open walls, using the arrow keys, the closed walls block the ball from going through. Finally reaches the end of the Maze and thus the maze is solved. At player X position(SQ)=26 At player Y position(SL) = 26 At player X position(SQ)=186 At player Y position(SL) = 26 At player X position(SQ)= 178 At player Y position(SL) = 230 From this project we learned: I. II. III. IV. V. Key event handling. Implementation of 2-D array. Collision Detection. Tried different algorithm techniques for creation of the maze(DFS, Tiles, fillRect()). Use of Graphics and Applet. http://www.zahniser.net/~russell/computer/in dex.php?title=Maze:%20Third%20Person http://www.mazeworks.com/mazegen/mazet ut/index.htm