High Level Structure for Interactivity and Logic

Contains the logic for doing the puzzle.

class PuzzleLogic extends Statics {

Take a unit image and chop it up into the pieces of the puzzle.

public PuzzleLogic(ImageBvr unitSourceIm,
Viewer viewedOn,
URL importBase) {
_viewedOn = viewedOn;
for synchronization
_squares = 3;
_inc = 1.0 / _squares;
_unitSourceIm = unitSourceIm;

The image is a switcher to facilitate the resetting of the image; see the resetImage method below.

ImageBvr initialImage = createImage();
_imageSwitcher = new ModifiableBehavior(initialImage);
_image = (ImageBvr)_imageSwitcher.getBvr();

will switch to these sounds as appropriate.

_successSound = importSound(buildURL(importBase,
"sound/butin.wav"), null);
_failureSound = importSound(buildURL(importBase,
"sound/deflate.mp2"), null);

the puzzle sound is a switcher used in setHitSound below.

_soundSwitcher = new ModifiableBehavior(silence);
_sound = (SoundBvr)_soundSwitcher.getBvr();
}

Just recreate the image and switch to it. Synchronize with the viewer so the code doesn't vie for the processor with it.

public void resetImage() {
synchronized (_viewedOn) {
_imageSwitcher.switchTo( createImage() );
}
}

straightforward hit or fail sounds are generated.

public void setHitSound(boolean success) {
_soundSwitcher.switchTo(success ? _successSound : _failureSound);
}
public ImageBvr getImage() { return _image; }
public SoundBvr getSound() { return _sound; }
int _squares;
int _emptyRow;
int _emptyCol;
double _inc;
SoundBvr _successSound;
SoundBvr _failureSound;
ModifiableBehavior _soundSwitcher;
ImageBvr _unitSourceIm;
ImageBvr _image;
ModifiableBehavior _imageSwitcher;
SoundBvr _sound;
Viewer _viewedOn;
}
© 1997 Microsoft Corporation. All rights reserved. Terms of Use.