2009 Dec 2, 4:56I don't know art, but I know what I like. And I like kitchens that rotate along a horizontal axis.
humor video kitchen art rotate 2008 Jun 1, 7:27
When I woke up this morning for some reason I was thinking about Polytope Tetris, my N-D Tetris game, and specifically generating Tetris pieces in various number of
dimensions. When I first wrote PTT I thought that as the number of dimensions increased you could end up with an infinite number of non-equivalent crazy Tetris pieces. However this morning I
realized that because you only get four blocks per piece there are only a possible three joints in a single Tetris piece which means that you only need three dimensions to represent all possible
distinct N-D Tetris pieces.
Below is the table of the various possible pieces per number of dimensions and sorted by the number of joints in the piece. Notice that the 'J' and 'L' become equivalent in 3D because you can
rotate the 'J' through the third dimension to make it an 'L'. The same happens for 'S' and 'Z' in 3D, and 'S+' and 'Z+' in 4D.
Joints
|
Name
|
1D
|
2D
|
3D
|
+
|
1
|
I
|
|
|
|
|
2
|
J
|
|
|
|
|
L
|
|
|
3
|
O
|
|
|
|
|
T
|
|
|
|
|
S
|
|
|
|
|
Z
|
|
|
T+
|
|
|
|
|
S+
|
|
|
|
|
Z+
|
|
|
|
|
Total
|
1
|
7
|
8
|
7
|
As a consequence of not realizing there's a finite and small number of N-D Tetris pieces, I wrote code that would randomly generate pieces for a specified number of dimensions by wandering through
Tetris space. This consists of first marking the current spot, then randomly picking a direction (a dimension and either forward or backward), going in that direction until hitting a previously
unvisited spot and repeating until four spots are marked, forming a Tetris piece. However this morning I realized that continuing in the same direction until reaching am unvisited spot means I
can't generate the 'T+' piece. I think the better way to go is keep the list of all possible pieces, pick one randomly, and rotate it randomly through the available dimensions. Doing this will also
allow me to give distinct pieces their own specific color (like the classic Tetris games do) rather than picking the color randomly like I do now.
polytope tetris tetris 2007 Jun 7, 5:29The other day I had the best idea for my Wii remote. Clearly I should use it to control the rotation of Tetris pieces in my
N-dimensional
Tetris game Polytope Tetris. One of the
issues I described with Polytope Tetris is user input. Given a Wii remote the
user could rotate a piece through 3 dimensions in a manner that's much easier to adjust to than particular keys on the keyboard.
Anyway, I did a little
research into how this might work. I knew that the Wii remote used infrared for absolute positioning and
Bluetooth for everything else (LEDs, speaker, accels.) I bought a
Bluetooth adapter for my PC after realizing that none of my
computers had one already. I used
GlovePIE to ensure that my Wii remote could connect and successfully communicate with my computer.
GlovePIE is actually pretty cool -- it provides a simple script layer over the Wii remote to control things like your mouse.
Since Polytope Tetris is in Java I looked for and found a
Java library for operating with the Wii remote and a long
forum thread discussing its use. I then read up on
Bluetooth in Java. Apparently JSR 82 is the name of the standard that describes the API a Bluetooth stack should expose
in Java. That is, to get Bluetooth working in Java one needs an additional package for Java that actually implements the Bluetooth Java API. This package would depend on the system so I suppose I
can't fault Sun for not including it... Where to find such a package? I found a
comparison list of implementations and tried the ones
that support javax.bluetooth.
None of them worked for me because none can address USB devices it seems or they cost money and I couldn't get the trial version working. I also tried
bluesock (not listed on the previous list) which seemed promising and could produce an address for my Wii remote as a connected device but couldn't use
that address.
And I thought that after I found the Wii remote Java library it would be easy... Oh well...
java bluetooth wii technical remote jsr82 tetris polytopetetris wiimote 2007 May 11, 3:48Type in some latin script and you'll get back a string of Unicode characters that looks like its rotated 180 degrees. More info on exciting Unicode codepoints.
unicode javascript tool tools web language