/// <summary> /// Presmetuva vo koj pravec treba da se dvizi figurata (gore, dole, levo, desno) /// </summary> /// <param name="e"> /// Momentalnata tocka kade se naodja kursorot koj se sporeduva so kliknata tocka</param> /// <returns>Vraka true dokolku e najden pravecot</returns> private bool calculateDirection(Point e) { int dX = firstClick.X - e.X; int dY = firstClick.Y - e.Y; int dist = (int)Math.Sqrt(dX * dX + dY * dY); if (dist > game.FieldDimension) { //rastojanieto treba da e pogolemo od poleto firstClick = Point.Empty; mouseDown = false; //se presmetuva nasokata dokolku nemoze da si gi smenat mestata se vraka false if (dX >= 0 && dY >= 0) { if (dX > dY) { if (!game.swap(Egg.Direction.Left)) { return(false); } } else if (!game.swap(Egg.Direction.Up)) { return(false); } } else if (dX < 0 && dY >= 0) { if (-dX > dY) { if (!game.swap(Egg.Direction.Right)) { return(false); } } else if (!game.swap(Egg.Direction.Up)) { return(false); } } else if (dX >= 0 && dY < 0) { if (dX > -dY) { if (!game.swap(Egg.Direction.Left)) { return(false); } } else if (!game.swap(Egg.Direction.Down)) { return(false); } } else { if (-dX > -dY) { if (!game.swap(Egg.Direction.Right)) { return(false); } } else if (!game.swap(Egg.Direction.Down)) { return(false); } } return(true); } return(false); }