3x3x3 Rubik’s Cube Solver Kevin Van Kammen Kyle Rupnow Jason Lavrenz.

Slides:



Advertisements
Similar presentations
Rubik’s Cube 101 By Andy Camann.
Advertisements

Review from this Lesson
Review from this Lesson
The WHITE Corners Lesson 3 Review from Previous Lesson Review from Previous Lesson Lesson Vocab Lesson Focus Review from this Lesson Review from this Lesson.
Review from this Lesson
Review from this Lesson
WORKCENTER 7755 – Walk-Up Training COPY Cheat Sheets.
Video Object Tracking and Replacement for Post TV Production LYU0303 Final Year Project Spring 2004.
Lecture 19: Parallel Algorithms
1 Angel: Interactive Computer Graphics 4E © Addison-Wesley 2005 Building Models modified by Ray Wisman Ed Angel Professor of Computer Science,
What is an isometric drawing?
Why ROOT?. ROOT ROOT: is an object_oriented frame work aimed at solving the data analysis challenges of high energy physics Object _oriented: by encapsulation,
DEFAULT JUDGEMENT FORM 11B. On the Default Judgement (FORM 11B) change your FORM STATUS by clicking once on the white box. A dropdown menu will appear.
1 Software Design Introduction  The chapter will address the following questions:  How do you factor a program into manageable program modules that can.
 Yes this sounds boring, but without it, you can’t learn the:  Algorithms, Permutations, Orientations, Formulas, Tricks, whatever you want to call.
What is Software Design?  Introduction  Software design consists of two components, modular design and packaging.  Modular design is the decomposition.
Copyright Irwin/McGraw-Hill Software Design Prepared by Kevin C. Dittman for Systems Analysis & Design Methods 4ed by J. L. Whitten & L. D. Bentley.
Informationsteknologi Wednesday, November 7, 2007Computer Graphics - Class 51 Today’s class Geometric objects and transformations.
Annotation & Nomenclature By Corey Fortezzo for PG&G GIS Workshop, 2010.
Mrs. Chapman. Tabs (Block Categories) Commands Available to use Script Area where you type your code Sprite Stage All sprites in this project.
Basis & Structure Surface – 6 of them, 6 colors Center Cube – 6 of them (fixed) Edge Cube –12 of them Corner Cube –8 of them Center Edge Corner.
Subdue Graph Visualizer by Gayathri Sampath, M.S. (CSE) University of Texas at Arlington.
Algorithms. Introduction Before writing a program: –Have a thorough understanding of the problem –Carefully plan an approach for solving it While writing.
Chapter 2: Algorithm Discovery and Design
Rubik's Cube Algorithm Rianna Richardson.
InDesign CS3 Lesson 3 Working with Frames. Using Frames Frames are containers in which you place graphics or text. Frames can also be used as graphic.
 Created in 1974 by a Professor of architecture named Erno Rubik  This was suppose to be an object that was not possible. It consists of 26 cubes 
Rubik’s Cube Flickflickflickflickflick… “Woah!”. History of the Cube Developed by Hungarian sculptor/architecture professor, Erno Rubik, in It hit.
Mr. Wortzman. Tabs (Block Categories) Available Blocks Script Area Sprite Stage All sprites in this project.
Modeling and representation 1 – comparative review and polygon mesh models 2.1 Introduction 2.2 Polygonal representation of three-dimensional objects 2.3.
BG Spider Tutorial. Notes 1. Save A Lot (possibly after each step in case you make any mistakes – THERE IS NO UNDO, and it gets complicated to correct.
by Chris Brown under Prof. Susan Rodger Duke University June 2012
Color Correct and Remove Keystoning A minimalist approach to photographing your art By Paul Marley.
Step 2: Solve the 1st side/layer
SOLVING SUDOKU WITH MATLAB Raluca Marinescu, Andrea Garcia, Ivan Castro, Eduard Enoiu Mälardalen University, Västerås,
1 Draw the frame of your structure. It will be helpful to know all your dimensions and elevations so that you can copy a shape, paste it and assign a different.
Place Value Kim Burns. Chip-Trading Games Use chip-trading games to teach place value. These games stress the idea of exchanging many for one. The values.
Aligning the Cantilever, Laser and Photodetector.
Programming Concepts Chapter 3.
Welcome to BC Splash!. Financial Planning The smart way to start planning for retirement before you turn 20.
Make an isometric drawing of the cube structure below.
3x3 Cube Solution: *There are MANY ways to solve this cube!
Using Pro-Engineer to Create 3 Dimensional Shapes Kevin Manner Kevin Manner Tim Reynolds Tim Reynolds Thuy Tran Thuy Tran Vuong Nguyen Vuong Nguyen.
Plans in Perspective Learning About Architecture Lesson Two Learning Goals Learning to draw architecture with dimension using perspective Understanding.
Tetris Agent Optimization Using Harmony Search Algorithm
 In computer programming, a loop is a sequence of instruction s that is continually repeated until a certain condition is reached.  PHP Loops :  In.
This is the finished body RADIUS LOFT EXTRUDE. Creating the body taper Open the wing Click on new part in context.
Making a Lego block in SolidWorks
Nets & Drawings for Visualizing Geometry Section 1-1.
Three Ways to Draw a Threaded Bolt Even though they look different, they all mean the exact same thing. It is the CALL-OUT information that is critical.
WS6.4-1 ANSYS, Inc. Proprietary © 2009 ANSYS, Inc. All rights reserved. July 2009 Inventory # Chapter 6 Introduction to Hexa – Workshop 4 Elbow Junction.
Lecture 1- Rubik’s Solutions: The Beginner’s Method
The WHITE Corners Lesson 3 Lesson 2 Review Lesson Extension
ICS 3UI - Introduction to Computer Science
The YELLOW Edges Lesson 8 Lesson 6 Review Lesson Extension
The YELLOW Cross Lesson 5 Lesson 4 Review Lesson Extension
The YELLOW Corners Lesson 7 Lesson 6 Review Lesson Extension
Introduction to Polygons
Meeting the Cube Lesson 1 Vocabulary Lesson Focus Lesson Review
An Introduction to Computers and Visual Basic
The MIDDLE Layer Lesson 4.
The WHITE Corners Lesson 3.
The WHITE Cross Lesson 2.
The WHITE Cross Lesson 2.
Solving the Rubik’s® 2x2 Cube
The WHITE Corners Lesson 3.
Duo By: Fernando & Vivian.
An Introduction to Computers and Visual Basic
The Instant Insanity Puzzle
Solving the Rubik’s® 2x2 Cube
Presentation transcript:

3x3x3 Rubik’s Cube Solver Kevin Van Kammen Kyle Rupnow Jason Lavrenz

Complexity 8 corners, 12 middle edges, 6 centers 2*(12!)*3*(8!)*(6!) combinations = e^16 combinations Conversion of visual algorithms to computer algorithms User interface

Visual Example

User Interface Microsoft Foundation Class Randomly create cube Manually create cube Solve cube, output step by step instructions Potentially allow user to manually solve

Creating 3D cube Cube is drawn as 54 separate polygons, need coordinates for all polygon points. Want to be able to easily modify size/appearance. Set reference points and cube size. All other points determined from reference points and cube size – only do this solving once and store them in an array. Each polygon then corresponds to certain points, referenced when updating the color of that polygon.

X - coordinate Y - coordinate Yellow points – reference points Red points – can all be solved knowing yellow’s coordinates The three yellow points in back can be adjusted for better looking cube

Final appearance Face 2 is a copy of face 1, offset. Face 5 is a copy of face 3, offset. Face 6 is a copy of face 4, offset.

Making Moves Graphically After each move is determined, an array of 54 contains the color of each block. This array is read in by GUI and all blocks are updated with new colors.

Cube Creation Random creation algorithm Start with a solved cube. Perform a random number of random moves on the cube. Each move is done in a random direction. (uses three random number generators)

Data Structure One array that stores the entire cube Arrays storing the indices of the corners and edges. Each element of the corner (edge) array contains 3 (2) elements. Arrays that stores the correct color and orientation for each piece.

Solver Algorithm Step 1 – Solve one face Step 2 – Position and orient four corner pieces of opposite face Step 3 – Solve this face completely Step 4 – Position and orient final four faces

Solve One Face for each corner of the top face find position of desired piece determine orientation of piece execute correct move based on orientation for each edge piece find position of desired piece determine orientation of piece execute correct move based on orientation and position

Result after Part 1: Turn the top so that the colors match the centers of the sides

Step 2 – Position and Orient Corners of Opposite Face Note: Because the top four corners are in the correct position, at least two corners on the bottom must be in the correct position. Use this fact to perform step two.

Step 2: find the correct corners correctly position the remaining corners (based on the location of the correct corners) for each edge piece determine the location of the desired edge line up the keyhole on top and the side on bottom execute the correct move based on the orientation of the edge piece.

Finish Step 2: Determine the orientation of the keyhole created in step 2. Execute the appropriate move to fill in the keyhole. Note: at this point two of the faces are completely solved.

Step 4 – Position and Orient Final Four Faces determine the location of a correct piece (if any) Iteratively perform a move based on the location of the correct pieces until all of the four edges are in the correct location (but not necessarily correctly oriented)

Finish Step 4: determine if any edge pieces are incorrectly oriented. for each pair of incorrectly oriented edges perform “Rubes” move to correctly orient the edges