Using Agile Techniques, design a Rubik's cube GUI simulation application. This will involve identifying and classifying which
Question:
Using Agile Techniques, design a Rubik's cube GUI simulation application. This will involve identifying and classifying which components need addressing and how, using Agile development, this will be achieved.
The final outcome of this will a document or documents addressing these components, (Communication, planning, modeling, construction and deployment).
Organization and Flow:
Project planning Use case development Requirement gathering Rapid design Code generation (not needed)
Testing
Overview:
In the mid-1970s, Erno Rubik worked at the Department of Interior Design at the Academy of Applied Arts and Crafts in Budapest.[16] Although it is widely reported that the Cube was built as a teaching tool to help his students understand 3D objects, his actual purpose was solving the structural problem of moving the parts independently without the entire mechanism falling apart. He did not realize that he had created a puzzle until the first time he scrambled his new Cube and then tried to restore it.[17] Rubik applied for a patent in Hungary for his "Magic Cube" (Buvos kocka in Hungarian) on 30 January 1975,[4] and HU170062 was granted later that year.
The Rubik's Cube is a 3-D combination puzzle invented in 1974[2][3] by Hungarian sculptor and professor of architecture Erno Rubik. Originally called the Magic Cube,[4] the puzzle was licensed by Rubik to be sold by Ideal Toy Corp. in 1980[5] via businessman Tibor Laczi and Seven Towns founder Tom Kremer.[6] Rubik's Cube won the 1980 German Game of the Year special award for Best Puzzle. As of January 2009, 350 million cubes had been sold worldwide,[7][8] making it the world's top-selling puzzle game.[9][10] It is widely considered to be the world's best-selling toy.[11]
On the original classic Rubik's Cube, each of the six faces was covered by nine stickers, each of one of six solid colors: white, red, blue, orange, green, and yellow. Some later versions of the cube have been updated to use colored plastic panels instead, which prevents peeling and fading.[12] In models as of 1988, white is opposite yellow, blue is opposite green, and orange is opposite red, and the red, white, and blue are arranged in that order in a clockwise arrangement.[13] On early cubes, the position of the colors varied from cube to cube.[14] An internal pivot mechanism enables each face to turn independently, thus mixing up the colors. For the puzzle to be solved, each face must be returned to have only one color. Similar puzzles have now been produced with various numbers of sides, dimensions, and stickers, not all of them by Rubik.
Mechanics
A standard Rubik's Cube measures 5.6 centimeters (2 14 in) on each side. The puzzle consists of 26 unique miniature cubes, also known "cubies" or "cubelets". Each of these includes a concealed inward extension that interlocks with the other cubes while permitting them to move to different locations. However, the center cube of each of the six faces is merely a single square facade; all six are affixed to the core mechanism. These provide structure for the other pieces to fit into and rotate around. Hence, there are 21 pieces: a single core piece consisting of three intersecting axes holding the six center squares in place but letting them rotate, and 20 smaller plastic pieces which fit into it to form the assembled puzzle.
Each of the six center pieces pivots on a screw (fastener) held by the center piece, a "3D cross". A spring between each screw head and its corresponding piece tensions the piece inward, so that collectively, the whole assembly remains compact but can still be easily manipulated. The screw can be tightened or loosened to change the "feel" of the Cube. Newer official Rubik's brand cubes have rivets instead of screws and cannot be adjusted. However, Old Cubes made by the Rubik's Brand Ltd. and from dollar stores do not have screws or springs, all they have is a Plastic clip to keep the center piece in place and freely rotate.
The Cube can be taken apart without much difficulty, typically by rotating the top layer by 45 and then prying one of its edge cubes away from the other two layers. Consequently, it is a simple process to "solve" a Cube by taking it apart and reassembling it in a solved state.
There are six central pieces that show one colored face, twelve edge pieces which show two colored faces, and eight corner pieces which show three colored faces. Each piece shows a unique color combination, but not all combinations are present (for example, if red and orange are on opposite sides of the solved Cube, there is no edge piece with both red and orange sides). The location of these cubes relative to one another can be altered by twisting an outer third of the Cube by increments of 90 degrees, but the location of the colored sides relative to one another in the completed state of the puzzle cannot be altered; it is fixed by the relative positions of the center squares. However, Cubes with alternative color arrangements also exist; for example, with the yellow face opposite the green, the blue face opposite the white, and red and orange remaining opposite each other.
Douglas Hofstadter, in the July 1982 issue of Scientific American, pointed out that Cubes could be colored in such a way as to emphasize the corners or edges, rather than the faces as the standard coloring does; but neither of these alternative colorings has ever become popular.[43]
Algorithms
In Rubik's cubers' parlance, a memorized sequence of moves that have a desired effect on the cube is called an algorithm. This terminology is derived from the mathematical use of an algorithm, meaning a list of well-defined instructions for performing a task from a given initial state, through well-defined successive states, to the desired end-state.
Each method of solving the Cube employs its own set of algorithms, together with descriptions of what effect the algorithm has, and when it can be used to bring the cube closer to being solved.
Many algorithms are designed to transform only a small part of the cube without interfering with other parts that have already been solved so that they can be applied repeatedly to different parts of the cube until the whole is solved. For example, there are well-known algorithms for cycling three corners without changing the rest of the puzzle or flipping the orientation of a pair of edges while leaving the others intact.
Some algorithms do have a certain desired effect on the cube (for example, swapping two corners) but may also have the side-effect of changing other parts of the cube (such as permuting some edges). Such algorithms are often simpler than the ones without side-effects and are employed early on in the solution when most of the puzzle has not yet been solved and the side-effects are not important. Most are long and difficult to memorize. Towards the end of the solution, the more specific (and usually more complicated) algorithms are used instead
Move notation
Many 333 Rubik's Cube enthusiasts use a notation developed by David Singmaster to denote a sequence of moves, referred to as "Singmaster notation".[53] Its relative nature allows algorithms to be written in such a way that they can be applied regardless of which side is designated the top or how the colors are organized on a particular cube.
F (Front): the side currently facing the solver B (Back): the side opposite the front U (Up): the side above or on top of the front side D (Down): the side opposite the top, underneath the Cube L (Left): the side directly to the left of the front R (Right): the side directly to the right of the front f (Front two layers): the side facing the solver and the corresponding middle layer b (Back two layers): the side opposite the front and the corresponding middle layer u (Up two layers): the top side and the corresponding middle layer d (Down two layers): the bottom layer and the corresponding middle layer l (Left two layers): the side to the left of the front and the corresponding middle layer
r (Right two layers): the side to the right of the front and the corresponding middle layer x (rotate): rotate the entire Cube on R y (rotate): rotate the entire Cube on U
z (rotate): rotate the entire Cube on F When a prime symbol ( ) follows a letter, it denotes an anticlockwise face turn; while a letter without a prime symbol denotes a clockwise turn. These directions are as one is looking at the specified face. A letter followed by a 2 (occasionally a superscript 2) denotes two turns, or a 180-degree turn. R is right side clockwise, but R is right side anticlockwise. The letters x, y, and z are used to indicate that the entire Cube should be turned about one of its axes, corresponding to R, U, and F turns respectively. When x, y, or z are primed, it is an indication that the cube must be rotated in the opposite direction. When they are squared, the cube must be rotated 180 degrees.
The most common deviation from Singmaster notation, and in fact the current official standard, is to use "w", for "wide", instead of lowercase letters to represent moves of two layers; thus, a move of Rw is equivalent to one of r.[54]
For methods using middle-layer turns (particularly corners-first methods), there is a generally accepted "MES" extension to the notation where letters M, E, and S denote middle layer turns. It was used e.g. in Marc Waterman's Algorithm.[55]
M (Middle): the layer between L and R, turn direction as L (top-down) E (Equator): the layer between U and D, turn direction as D (left-right) S (Standing): the layer between F and B, turn direction as F The 444 and larger cubes use an extended notation to refer to the additional middle layers.
Generally speaking, uppercase letters (F B U D L R) refer to the outermost portions of the cube (called faces). Lowercase letters (f b u d l r) refer to the inner portions of the cube (called slices). An asterisk (L*), a number in front of it (2L), or two layers in parentheses (Ll), means to turn the two layers at the same time (both the inner and the outer left faces) For example: (Rr)' l2 f' means to turn the two rightmost layers anticlockwise, then the left inner layer twice, and then the inner front layer anticlockwise. By extension, for cubes of 666 and larger, moves of three layers are notated by the number 3, for example, 3L.
An alternative notation, Wolstenholme notation,[56] is designed to make memorizing sequences of moves easier for novices. This notation uses the same
letters for faces except it replaces U with T (top), so that all are consonants. The key difference is the use of the vowels O, A, and I for clockwise, anticlockwise, and twice (180-degree) turns, which results in word-like sequences such as LOTA RATO LATA ROTI (equivalent to LU R U L U R U2 in Singmaster notation). Addition of a C implies rotation of the entire cube, so ROC is the clockwise rotation of the cube around its right face. Middle layer moves are denoted by adding an M to corresponding face move, so RIM means a 180-degree turn of the middle layer adjacent to the R face.
Another notation appeared in the 1981 book The Simple Solution to Rubik's Cube. Singmaster notation was not widely known at the time of publication. The faces were named Top (T), Bottom (B), Left (L), Right (R), Front (F), and Posterior (P), with + for clockwise, - for anticlockwise, and 2 for 180-degree turns.
Another notation appeared in the 1982 "The Ideal Solution" book for Rubik's Revenge. Horizontal planes were noted as tables, with table 1 or T1 starting at the top. Vertical front to back planes were noted as books, with book 1 or B1 starting from the left. Vertical left to right planes were noted as windows, with window 1 or W1 starting at the front. Using the front face as a reference view, table moves were left or right, book moves were up or down, and window moves were clockwise or anticlockwise.
Example GUI Screen: Reference: https://rubikscu.be/
Example of GUI movement: How to solve rubik's cube Reference: https://rubikscu.be/
Deliverables:
The outcome of this will a document or documents addressing these components, (Requirements, Architecture, Design and Test)