2014-08-29 4 views
0

У меня есть это колесо фортуны application. Колесо - это целое изображение. Я могу вращать и обнаруживать угол, когда колесо перестает вращаться. Это код, который:Как проверить правильный ответ в колесе фортуны?

private void SpinBtn_Click(object sender, RoutedEventArgs e) 
     { 

      var ease = new PowerEase { EasingMode = EasingMode.EaseOut }; 

      Random rng = new Random(Guid.NewGuid().GetHashCode()); 
      //DoubleAnimation(FromValue. ToValue, Duration) 
      double degree = rng.Next(360, 720); 
      DoubleAnimation myanimation = new DoubleAnimation 
        (0, degree, new Duration(TimeSpan.FromSeconds(3))); 

      double resultAngle = degree - 360; 
      double num = resultAngle % 45; 
      double quadrant = num + 1; 


      data.Content = resultAngle; 

      //Adding Power ease to the animation 
      myanimation.EasingFunction = ease; 

      RotateTransform rotate = new RotateTransform(); 

      img.RenderTransform = rotate; 
      img.RenderTransformOrigin = new Point(0.5, 0.5); 
      rotate.BeginAnimation(RotateTransform.AngleProperty, myanimation); 


     } 

Однако, как я могу проверить, если пользователь перетаскивает слово в текстовое поле бирок с изображением указатель, указывающий на? Мой лектор требует от меня хранить слова (я получаю из базы данных) в массив и номер объекта в массиве, но я понятия не имею, как это сделать. Например, номер объекта 1 будет попадать в диапазон углов 0-45, объект номер 2 в 46-90 и т. Д. Как мне пройти проверку?

ответ

0

Я не совсем уверен, полностью ли я понял, в чем проблема! Но вы можете просто использовать Dictionary для хранения строковых значений каждого 45-градусного фрагмента и проверить его на слово пользователя.

Dictionary<int, string> dict = new Dictionary<int, string>(); 
dict.Add(1, "Eraser"); 
dict.Add(2, "Glue"); 
dict.Add(3, "Pen"); 
dict.Add(4, "Scissors"); 
dict.Add(5, "Stapler"); 
dict.Add(6, "Sharpener"); 
dict.Add(7, "Ruler"); 
dict.Add(8, "Pencil"); 

И изменить код:

double degree = rng.Next(360, 720); 
double resultAngle = degree - 360; 
int num = (int)Math.Ceiling(resultAngle/45); 

Затем имя элемента указателя в данный момент указывает на будет:

string currentElem = dict[num]; 
Смежные вопросы