Beispiel #1
0
 private void SendMoveLeftRequest(MoveRequest request)
 {
     if (CanDecideAboutMoveLeft(request.x)) {
         if (IsMoveLeftPossible(request.x))
         {
             request.accepted = true;
             MoveBy(request.x);
         }
         else
         {
             System.Diagnostics.Debug.WriteLine("no move left :(");
         }
         request.processed = true;
         if (this != request.sender)
         {
             rightBead.SendMoveLeftRequest(request);
         }
     }
     else 
     {
         if (request.accepted)
         {
             MoveBy(request.x);
         }
         if (this != request.sender || !request.processed)
         {
             if (request.processed)
             {
                 rightBead.SendMoveLeftRequest(request);
             }
             else
             {
                 leftBead.SendMoveLeftRequest(request);
             }
         }
     }
 }
Beispiel #2
0
 // ==========================================================================
 // Moving left logic
 // ==========================================================================
 
 protected void MoveLeft(Double x)
 {
     MoveRequest request = new MoveRequest(this, x);
     this.SendMoveLeftRequest(request);
 }