Rubik’s Cube Programming: Part 3

5 11 2008

I’m still messing with the Rubik’s Cube and Java3D every now and then, so here’s an update. Instead of making the cubies actually rotate, I just decided to make them change color. And instead of bothering to keep track of all the cubies and change the colors, I instead just decided to display the cube as a BranchGraph, and then remove the BranchGraph and generate a new one when you twist a side. Result, the colors of the cubies change. Not the best way to do it probably, but it works well enough. In order to rotate a side I’d need to have cubies in more than one transform group, delays to not rotate one side until another side is done rotating, and regenerating the transform groups every twist anyway because the same cubies would no longer be on the same faces. I’ll save that for version 2…

Rubik's Cube Program Version 0.1

Rubik's Cube Program Version 0.1

At the top you have controls to reset the cube to a solved state, scramble the cube,  and display either a black Rubik’s Cube or a see through Rubik’s Cube. In the center, we have the Rubik’s Cube itself, can be rotated, moved, and zoomed using the mouse. The right is a list of text values describing the arrays, and on the bottom is an entry box which will allow values f, f’, b, b’, l, l’, r, r’, t, t’, d, d’, rotating the sides either clockwise or counterclockwise. You can either enter one value at a time or a handful of values seperated by spaces. Everything works fine and I declare it version 0.1!

Rubik's Cube Program Version 0.1You can go play with it if you download Java 3D API here,

And you can find the Rubik’s Cube in it’s current version here,

Note: it will NOT work at this moment without downloading and installing the Java 3D API first. It’s a small and fast install though.

To do list:

  1. Display the sides not visable by means of some sort of mirror.
  2. Program the methods to actually solve the cube and display how.
  3. Create user entry mode so people can program in their own cube permutation to be solved.
  4. Run without the need for users to download Java 3D manually.

I’ll get right on that… after writing up an EE120 lab report, doing MAT267 homework, and finishing up homework that’s actually for my Java class… and maybe watching some TV. Stay tuned for most likely the last Rubik’s Cube programming post, part 4!

Rubik’s Cube Programming: Part 2

28 10 2008

In the beginning, there was nothing. Then the programmer said, “let there be light!”

Let there be light!

Let there be light!

And then… there was still nothing, but now you could at least see it if there was something. So begins the adventure in Java 3D. I decided to make a bunch of little square cubies instead of actual cubed cubies, just cause it kinda looks cool. Maybe I’ll try it with cubes later, but whatever. I think all I have to do is make all the cubies, add them to transform groups, and then add those into transform groups which will rotate the sides, and then add those into the branchgroup, and then add that into the universe, and everything will work out. Well I’m really not sure, Java3D tutorials are so very boring, but I’ll try it and find out. I don’t have anything else to post tonight, so here’s a pic of the cube being built. As usual school and work are taking up almost all of my time, leaving most of the Rubik’s cube program and specs in a purely theortical state of exisetence. It’ll all work fine, in theory, I think. Although, as soon as you open the box, the state may collapse along with the entire theory. ::incoherent rambling of 1:00am::

Cube Building

Cube Building