コード例 #1
0
ファイル: Number.cs プロジェクト: Mellen/Zero-Sum
 private void EmptyStopHandler(StopEventArgs e)
 {
 }
コード例 #2
0
ファイル: NumberHolder.cs プロジェクト: Mellen/Zero-Sum
 /// <summary>
 /// Event handler for Number Stop events.
 /// Checks if a zero sum has been made. If one has the a ZeroSum event is raised.
 /// </summary>
 /// <param name="e">Contains the index of the number that has stopped</param>
 public void Stop(StopEventArgs e)
 {
     int index = e.index;
     int nextIndex = index + 1;
     Number Start = numbers[e.index];
     int sum = 0;
     if (Start != null)
     {
         sum = Start.Value;
     }
     List<Number> gonners = new List<Number>();
     while ((Start != null) && (Start.Value != 0) && (sum != 0) && (index > -1))
     {
         sum = Start.Value;
         while ((nextIndex < numbers.Length) && (sum != 0) && (numbers[nextIndex] != null) && (numbers[nextIndex].Value != 0))
         {
             sum += numbers[nextIndex].Value;
             if (sum == 0)
             {
                 for (int i = index; i <= nextIndex; ++i)
                 {
                     gonners.Add(numbers[i]);
                 }
             }
             ++nextIndex;
         }
         --index;
         nextIndex = index + 1;
         if (index > -1)
         {
             Start = numbers[index];
         }
     }
     if (gonners.Count > 0)
     {
         ZeroSum(new ZeroSumEventArgs(gonners));
     }
 }