Android Open Source - slider Robot Frame






From Project

Back to project page slider.

License

The source code is released under:

Apache License

If you think the Android project slider listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package de.devisnik.sliding.impl;
//from www  .  j a v a2 s  .com
import java.util.ArrayList;

import de.devisnik.sliding.FromHomeShiftingEvent;
import de.devisnik.sliding.IMove;
import de.devisnik.sliding.IPiece;
import de.devisnik.sliding.IRandom;
import de.devisnik.sliding.IRobotFrame;
import de.devisnik.sliding.MoveFactory;
import de.devisnik.sliding.Point;
import de.devisnik.sliding.ShiftingEvent;
import de.devisnik.sliding.ToHomeShiftingEvent;

public class RobotFrame extends Frame implements IRobotFrame {

  private Scrambler itsScrambler;
  private IMove[] itsMoves = new IMove[0];
  private int itsNextMoveIndex = -1;

  public RobotFrame(int x, int y, IRandom random) {
    super(x, y);
    itsScrambler = new Scrambler(this, random);
  }

  public final boolean isResolved() {
    return itsNextMoveIndex == -1;
  }

  public boolean replayNext() {
    if (isResolved())
      return false;
    execute(MoveFactory.getInverse(itsMoves[itsNextMoveIndex]));
    itsNextMoveIndex--;
    return true;
  }

  public boolean scramble() {
    if (!isResolved())
      return false;
    itsMoves = itsScrambler.scramble();
    itsNextMoveIndex = itsMoves.length - 1;
    ArrayList<ShiftingEvent> events = new ArrayList<ShiftingEvent>();
    for (IPiece piece : this)
      events.add(new FromHomeShiftingEvent(piece));
    fireShiftingEvents(events.toArray(new ShiftingEvent[0]));
    return true;
  }

  public void resolve() {
    if (isResolved())
      return;
    ArrayList<ShiftingEvent> events = new ArrayList<ShiftingEvent>();
    for (IPiece piece : this) {
      events.add(new ToHomeShiftingEvent(piece));
      putAtHome(piece);
    }
    itsNextMoveIndex = -1;
    fireShiftingEvents(events.toArray(new ShiftingEvent[0]));
  }

  private void putAtHome(IPiece piece) {
    Point homePosition = piece.getHomePosition();
    putPieceAt((Piece) piece, homePosition.x, homePosition.y);
  }

}




Java Source Code List

de.devisnik.android.sliding.ARandom.java
de.devisnik.android.sliding.FPSCounter.java
de.devisnik.android.sliding.FrameDrawer.java
de.devisnik.android.sliding.ISpeed.java
de.devisnik.android.sliding.ImageCache.java
de.devisnik.android.sliding.ImageFactory.java
de.devisnik.android.sliding.Logger.java
de.devisnik.android.sliding.OpenActivity.java
de.devisnik.android.sliding.OpenPreviewActivity.java
de.devisnik.android.sliding.PropertiesBuilder.java
de.devisnik.android.sliding.RenderHandler.java
de.devisnik.android.sliding.Replayer.java
de.devisnik.android.sliding.Settings.java
de.devisnik.android.sliding.SlidingPreferences.java
de.devisnik.android.sliding.SlidingWallpaper.java
de.devisnik.android.sliding.SpeedFactory.java
de.devisnik.android.sliding.SummaryUpdater.java
de.devisnik.android.sliding.tile.BitmapCachingPieceDrawer.java
de.devisnik.android.sliding.tile.CachingPieceDrawer.java
de.devisnik.android.sliding.tile.IPieceDrawer.java
de.devisnik.android.sliding.tile.ImagePieceDrawer.java
de.devisnik.android.sliding.tile.NumberPieceDrawer.java
de.devisnik.android.sliding.tile.PieceDrawerFactory.java
de.devisnik.android.sliding.tile.TileShifter.java
de.devisnik.android.sliding.tile.TileStore.java
de.devisnik.android.sliding.tile.Tile.java
de.devisnik.sliding.FrameFactory.java
de.devisnik.sliding.FrameScrambler.java
de.devisnik.sliding.FromHomeShiftingEvent.java
de.devisnik.sliding.IFrameListener.java
de.devisnik.sliding.IFrame.java
de.devisnik.sliding.IHole.java
de.devisnik.sliding.IMove.java
de.devisnik.sliding.IPiece.java
de.devisnik.sliding.IRandom.java
de.devisnik.sliding.IRobotFrame.java
de.devisnik.sliding.IShifterListener.java
de.devisnik.sliding.MoveFactory.java
de.devisnik.sliding.Point.java
de.devisnik.sliding.ShiftingEvent.java
de.devisnik.sliding.ToHomeShiftingEvent.java
de.devisnik.sliding.animation.AccelerateDecelerateInterpolator.java
de.devisnik.sliding.animation.AnimationRunner.java
de.devisnik.sliding.animation.Animation.java
de.devisnik.sliding.animation.IInterpolator.java
de.devisnik.sliding.animation.IMovement.java
de.devisnik.sliding.animation.IShiftable.java
de.devisnik.sliding.animation.LinearInterpolator.java
de.devisnik.sliding.animation.MetaShiftable.java
de.devisnik.sliding.animation.ShiftAnimation.java
de.devisnik.sliding.animation.Translation.java
de.devisnik.sliding.impl.Frame.java
de.devisnik.sliding.impl.Hole.java
de.devisnik.sliding.impl.Move.java
de.devisnik.sliding.impl.PieceIterator.java
de.devisnik.sliding.impl.Piece.java
de.devisnik.sliding.impl.RobotFrame.java
de.devisnik.sliding.impl.Scrambler.java