Recursive backtracking maze generator

Slides:



Advertisements
Similar presentations
A Natural Interactive Game By Zak Wilson. Background This project was my second year group project at University and I have chosen it to present as it.
Advertisements

Introduction Games have always been a fundamental part of human life. Space storm “ عاصفة الفضاء” is a 3D SCI-FI game that consists of two stages presented.
Deadlock and Starvation
Efficient access to TIN Regular square grid TIN Efficient access to TIN Let q := (x, y) be a point. We want to estimate an elevation at a point q: 1. should.
Events Chapter 7. Interactivity The real world is interactive User determines order of actions instead of programmer.
Events Chapter 7. Interactive Real world is interactive User determines order of actions instead of programmer.
Programming Types of Testing.
Microsoft® Small Basic
Announcements Assignment #4 is due tonight. Last lab program is going to be assigned this Wednesday. ◦ A backtracking problem.
ISOM MIS 215 Module 7 – Sorting. ISOM Where are we? 2 Intro to Java, Course Java lang. basics Arrays Introduction NewbieProgrammersDevelopersProfessionalsDesigners.
Backtracking COP Backtracking  Backtracking is a technique used to solve problems with a large search space, by systematically trying and eliminating.
Technical Advisor : Mr. Roni Stern Academic Advisor : Dr. Meir Kalech Team members :  Amit Ofer  Liron Katav Project Homepage :
Game Design and Programming. Objectives Classify the games How games are design How games are implemented What are the main components of a game engine.
Michael Birsak and Michael Hanzl Institute of Computer Graphics and Algorithms Vienna University of Technology.
Complete and Present Prototype Project 6 Status report: Tuesday, October 5 th Due: Saturday, October 9 th Presentation: Tuesday, October 12 th.
1. 2 FUNCTION INLINE FUNCTION DIFFERENCE BETWEEN FUNCTION AND INLINE FUNCTION CONCLUSION 3.
Real-Time Ray Tracing 3D Modeling of the Future Marissa Hollingsworth Spring 2009.
By Steven Taylor.  Basically a video game engine is a software system designed for the creation and development of video games.  There are many game.
CHAPTER 1: INTORDUCTION TO C LANGUAGE
CSCI 101 Introduction to Software Development and Design.
Lecture 7: Objects and Interaction 1  Principles of Interactive Graphics  CMSCD2012  Dr David England, Room 718,  ex 2271 
Platforms for Learning in Computer Science July 28, 2005.
Introduction 01_intro.ppt
Chapter 2 Build Your First Project A Step-by-Step Approach 2 Exploring Microsoft Visual Basic 6.0 Copyright © 1999 Prentice-Hall, Inc. By Carlotta Eaton.
Week 4-5 Java Programming. Loops What is a loop? Loop is code that repeats itself a certain number of times There are two types of loops: For loop Used.
Visual Basic Chapter 1 Mr. Wangler.
DATA STRUCTURE AND ALGORITHM PROJECT Fall2011 Group Members: Asma Rafi BS-3 Fatima Saleem BS-3.
Antigone Engine Kevin Kassing – Period
TerraForm3D Plasma Works 3D Engine & USGS Terrain Modeler Heather Jeffcott Craig Post Deborah Lee.
Fundamentals of Python: From First Programs Through Data Structures Chapter 14 Linear Collections: Stacks.
Canyon Adventure Technology David Maung, Tristan Reichardt, Dan Bibyk, Juan Roman Department of Computer Science and Engineering The Ohio State University.
CIS 205—Web Design & Development Flash Chapter 1 Getting Started with Adobe Flash CS3.
1 Tips for solving Project 1 Reactor SO 3 SO 2 +O 2.
A Spring 2005 CS 426 Senior Project By Group 15 John Studebaker, Justin Gerthoffer, David Colborne CSE Dept., University of Nevada, Reno Advisors (CSE.
© The McGraw-Hill Companies, 2006 Chapter 4 Implementing methods.
Chapter 1 What is Programming? Lecture Slides to Accompany An Introduction to Computer Science Using Java (2nd Edition) by S.N. Kamin, D. Mickunas, E.
School of Computer Science University of Seoul. 1. Interaction 2. Input Devices 3. Clients and Servers 4. Display Lists 5. Programming Event-Driven Input.
Spong Bluetooth game Developed by: Erik Matzols Fredrik Lindberg.
Recursion. Recursive Methods HAVE: 1.A base case or termination condition that causes the method to end 2.A non-base case whose actions move the algorithm.
Tot 15 LTPDA Graphic User Interface summary and status N. Tateo 26/06/2007.
Luminance.  Major group refactoring.  Development Lead: Stephen Damm.  Project Manager: Martina Nagy.  Test team member: Chet Collins.  A lot of.
به نام خدا تنظیم کننده : فرانه حدادی استاد : مهندس زمانیان تابستان 92.
NEWTON’S CRADLE CADENAS QUIJANO, PATRICIA COTRINA FERNÁNDEZ, MANUEL GARCÍA TOMILLO, JAVIER HIJARRUBIA BERNAL, LUIS An OpenGL Application.
By: Jonathan Sullivan.  Description:  Create a visual maze that shows how programs travel through it  General Requirements:  Design a “maze creator”
Gene Au-yeung, Daniel Quach, Jeffrey Su, Albert Wang, Jessica Wang, David Woo.
Renan Paul Blanco William Hansen Elizabeth Montes.
3.1 System Software. Overview Describe the purpose and functions of an operating system including the basic start- up sequence of a computer. Identify.
Introduction to Processing. 2 What is processing? A simple programming environment that was created to make it easier to develop visually oriented applications.
“The perfect project plan is possible if one first documents a list of all the unknowns.” Bill Langley.
CMPT371 – Team 1 Luminance. Project – Luminance  Puzzle game  Guide a beam of light using a limited set of tools to certain goals avoiding obstacles.
Guide to Programming with Python Chapter Twelve Sound, Animation, and Program Development: The Astrocrash Game.
Chapter 6 Methods: A Deeper Look. Objectives In this chapter you will learn: How static methods and fields are associated with an entire class rather.
INTRODUCTION GORT is a virtual 3D modeling environment for computer programmers. Its main area of focus is to aid in the education of programmers learning.
STAR Schema Evolution Implementation in ROOT I/O V. Perevoztchikov Brookhaven National Laboratory,USA.
Graphics Final Project: TANK! Zak Andree Kevin Pang Ed Kim.
Computer Simulation of Networks ECE/CSC 777: Telecommunications Network Design Fall, 2013, Rudra Dutta.
Copyright © 2012 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Starting Out with Alice: A Visual Introduction to Programming Third Edition.
Super EastGate Jon Caron, Ryan Fleming, Antonio Guarino, and Mike LoVerme Merrimack College Introduction Super EastGate is a 2D side scroller game that.
Purpose of Operating System Monil Adhikari. Agenda Introduction Responsibilities of Operating System User Interfaces Command Line Interface Graphical.
GPGPU: Parallel Reduction and Scan Joseph Kider University of Pennsylvania CIS Fall 2011 Credit: Patrick Cozzi, Mark Harris Suresh Venkatensuramenan.
Computer Programming 12 Lesson 6 – Loop structure By: Dan Lunney.
Terrain Generator Done by Manoo Gharse Vanessa Ferrao Karl Fernandes Rohit Arondekar Amruta Kunkolienkar.
Some of the utilities associated with the development of programs. These program development tools allow users to write and construct programs that the.
Martin Kruliš by Martin Kruliš (v1.0)1.
Game Maker Tutorials Introduction Clickball IntroductionClickball Where is it? Shooting Where is it?Shooting.
Chapter 1 Introduction.
An Introduction to Programming and VB.NET
Technical Implementations
Team Skill 6 - Building The Right System Part 1: Applying Use Cases
Chapter 1 Introduction.
Presentation transcript:

Recursive backtracking maze generator THE 3D MAZE Recursive backtracking maze generator By::: Nishan Pantha(528) Navin Ayer(526) Pusparaj Bhattarai(532)

Objectives 1. To learn Object Oriented Programming in C++. 2. To use built-in features and functions of C++ in a simple manner. 3. To learn about the graphical programming using OpenGL. 4. To learn file streaming (create, write, save and read files). 5. To model the real world in programing using OOP. 6. To use 3D graphics to make the program look real and user friendly as possible. 7. To use the external library and utility… 1. Opengl (Open Graphic Library) 2. GLUT (or freeglut) 3. SOIL (Simple Opengl Image Library ) 4. SDL

Introduction 1. Random Maze Generator using Recursive Backtracking Algorithm . 2. 3D maze simulation . 3. Game is efficient i.e. runs using less memory and processing .

Existing System 1. Inspired from the algorithm of maze solver and maze generator. 2. There are several flash game… from which some are Random maze generator . Till now there are no famous maze game as far our knowledge.

Methodology 1. The game is designed by employing Object Oriented Approach of C++ . 2. 3D graphics is done through OpenGL and freeglut(utility) . 3. Window and key events through OpenGL and freeglut . 4. Texture loading through SDL / SOIL .

Application 1. For the gaming lover and puzzle solver…… 2. For any age group….since it does not contain any violence or scary scene …. 3. For people who likes random level than the same one. 4. 3D gaming instead of 2D gaming experience . 5 .Complex algorithm into simple programmable code .

Recursive Backtracking Maze Generator Lets take this maze for the description of the algorithm i.e. Recursive Backtracking Maze Generator

The real maze looks like this after intialization.

Initial position(which is floor)

Closed(i.e surrounded by wall) No permission to visited the surrounding wall of the whole maze (since they are not surrounded by walls )

Closed(i.e surrounded by wall) Now this place becomes the floor i.e. the path between initial and final for this case…. Closed(i.e surrounded by wall) Lets chose this(random)(we have two case jump i.e down and right) No permission to visited the surrounding wall of the whole maze (since the wall are not closed)

Closed(i.e surrounded by wall) Not Closed(i.e not surrounded by wall from left and down) and for another not surrounded by wall from left and right Closed(i.e surrounded by wall) Afer many successive recursion let this condition arrises No choice but to jump there No permission to visited the surrounding wall of the whole maze (since the wall are not closed)

Again Afer many successive recursion let this condition arrises Not closed(that’s why we jump to next block to avoid unwanted recursion since there is no condition for visited block)such that backtracking can be done(i.e exiting from present recursion to back…. Again Afer many successive recursion let this condition arrises No choice but to backtrack to the condition where there are available closed block No permission to visited the surrounding wall of the whole maze (since the wall are not closed)

Again Backtraking Occurs to available condition closed Again Backtraking Occurs to available condition Move to available block No permission to visited the surrounding wall of the whole maze (since the wall are not closed)

Again After many successive recursion let this final condition arises Not closed Now again backtracking occurs to the previous condition until there is a available condition……. No permission to visited the surrounding wall of the whole maze (since the wall are not closed)

No available condition so… No available condition so…..backtracking occurs to the initial condition….. Now backtracking occurs to the initial position……After which the maze is entirely created….generated……. No permission to visited the surrounding wall of the whole maze (since the wall are not closed)

Start Game Main Menu New Maze Instruction High score Credits Exit Maze Size Input End Game Gaming Rendering

Problem Faced and Solution To find the algorithm for maze generator . To change the algorithm into real code. To convert 2D maze(2D array) into the 3D world. Collision Detection was the hardest part which was solved using Axis-Aligned Cubic Collision . Glut is a C library …so glut callbacks function accepts only the void function pointers…i.e function pointers to an instance of any class is not accepted by the callbacks. This was solved by creating a bridge/transition class(Engine class) and an anonymous namespace.

Limitation Maximum size of the size is 35 .. To avoid fps drop……. There is no 2D view of the maze while playing(accepts while start). There is no 3D model (or animation) in our game. Older version of OpenGL(2.1) which does not support shader implementation and many more….

Conclusion Making games is fun and we got to know about various aspects of programming. We learnt about team work and work division