home *** CD-ROM | disk | FTP | other *** search
- import java.awt.Color;
- import ltk.DisplayListCanvas;
- import ltk.Graphical;
-
- class Disk extends Graphical {
- static int speed = 5;
- Peg peg;
-
- void moveTo(Peg var1) {
- this.peg.removeDisk(this);
- this.move(super.area.x, this.peg.area.y - super.area.h - 10, 2 * speed);
- this.peg = var1;
- this.move(this.peg.area.x + this.peg.area.w / 2 - super.area.w / 2, super.area.y, speed);
- this.move(super.area.x, this.peg.area.y + this.peg.area.h - (this.peg.nDisks + 1) * super.area.h, 2 * speed);
- this.peg.addDisk(this);
- }
-
- public void move(int var1, int var2, int var3) {
- super.move(var1, var2, var3);
- Thread.yield();
-
- while(Hanoi.take_a_break) {
- try {
- Thread.sleep(1000L);
- } catch (InterruptedException var5) {
- break;
- }
- }
-
- }
-
- public synchronized void draw() {
- super.canvas.setColor(Color.yellow);
- super.canvas.fillRoundRect(super.area.x, super.area.y, super.area.w, super.area.h, super.area.h / 4, super.area.h / 4);
- super.canvas.setColor(Color.black);
- super.canvas.drawRoundRect(super.area.x, super.area.y, super.area.w, super.area.h, super.area.h / 4, super.area.h / 4);
- }
-
- public synchronized void erase() {
- }
-
- public String toString() {
- return "Disk[" + "x=" + super.area.x + "," + "y=" + super.area.y + "," + "resting at peg " + this.peg.id + "]";
- }
-
- Disk(DisplayListCanvas var1, Peg var2, int var3, int var4) {
- super(var1, var2.area.x + var2.area.w / 2 - var3 / 2, var2.area.y + var2.area.h - (var2.nDisks + 1) * var4, var3, var4);
- this.peg = var2;
- var2.addDisk(this);
- ((Graphical)this).update();
- }
- }
-