ftp.nice.ch/pub/next/science/mathematics/AliceCube.999.N.bs.tar.gz#/AliceCube

AliceApp.h
[View AliceApp.h] 
AliceApp.m
[View AliceApp.m] 
AliceCube
 

AliceCube.nib


 
AliceCube_main.m
[View AliceCube_main.m] 
AliceDoc.h
[View AliceDoc.h] 
AliceDoc.m
[View AliceDoc.m] 
Collect.debug.csh
 
Cube.c
[View Cube.c] 
Cube.h
[View Cube.h] 
CubePlane.h
[View CubePlane.h] 
CubePlane.m
[View CubePlane.m] 
CubeView.h
[View CubeView.h] 
CubeView.m
[View CubeView.m] 
Cubicle.h
[View Cubicle.h] 
IB.proj
 

InfoPanel.nib


 
Makefile
 
Makefile.preamble
 
Plane.h
[View Plane.h] 
README
 
cube.tiff
 
cubeS.tiff
 
cubeTypes.h
[View cubeTypes.h] 
hyperCube.eps
[View hyperCube.eps as PDF] 
hyperCube.tiff
 

README

Alice's Cube:  Rubik's in Hyperland

AliceCube is a 4D analogue of the traditional Rubik's Cube (actually the 'Idiot's Cube', since it has only two per side).  On a traditional cube, each plane of the cube has the rotations of the rigid plane, SO(2), which are plus and minus in a single direction.  Thus, for the hypercube, we have chosen the convention that each hyperplane (i.e., subsidiary cube) has the rotations of a solid cube (+/- X, +/- Y, +/- Z).  The control panel demonstrates this.

This program was originally developed as part of one of the infamous 'Ditch Day' "stacks" for Spring, 1991 at the California Insititute of Technology.  Since it is extremely difficult (impossible?) to solve directly, the actual stack consisted of finding and deciphering clues to give the sixteen letters needed to unscramble the cube, and hence gain entrance to the senior's room (which is the point of Ditch Day, for the culturally illiterate :-).  For this version, instead of a fixed code, it generates eight (8) random permutations of the cube.  If anybody manages to solve this, I would love to hear about it.

Distinctives:
1)  C++
This provides a very neat (I think) example of integrating C++ and Objective-C.  The Cube itself is a C++ object, while the display and interaction mechanisms are done in Objective-C.  I find the hybrid to work quite well.  However, a compiler bug in Objective-C++ with make necessitated a shell script to complete the last stage of compilation (Collect.debug.csh).

2) Color
Although written entirely on a monochrome system, it actually ran on a borrowed color slab without modification in full color.  This demonstrates the advantages and disadvantages of Color PostScript.  The advantage is that one program will work on either; the disadvantage is that I have little idea what it will look like, so the results may be garish (see Reverse for another example of such :-).

3) Modularity
This program is based on the "BasicApp.subproj" which provides the underlying multidocument implementation.  I am not (September 10, 1991) quite yet ready to release that, so I have not included it with this Application.  Those interested can contact me for a pre-release version.

-- Ernie P.
===
Ernest N. Prabhakar                  Caltech High Energy Physics
CaJUN President        NeXTMail:ernest@pundit.cithep.caltech.edu
"...and ourselves, your servants for Jesus sake." - II Cor 5:13a
#import <std/disclaimer.h>

These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.