Пример #1
0
 void Board_OnNewPreviewAvailable(Triple triple)
 {
     //Debug.WriteLine(String.Format("Preview: {0} {1} {2}",
     //    new object[] { triple[0].Color, triple[1].Color, triple[2].Color }));
     Dispatcher.BeginInvoke(delegate()
     {
         if (_previewImages.Count > 0)
         {
             for (int i = _previewImages.Count - 1; i >= 0; i--)
                 canvas_preview.Children.Remove(_previewImages[i]);
             _previewImages.Clear();
         }
         for (int i = 0; i < 3; i++)
         {
             Element elem = triple[i];
             Image image = new Image();
             image.Source = new BitmapImage(new Uri(String.Format("images/elem{0}.png", elem.Color.ToString()), UriKind.Relative));
             image.Width = 30;
             image.Height = 30;
             image.SetValue(Canvas.LeftProperty, 0.0);
             image.SetValue(Canvas.TopProperty, i * 30.0);
             _previewImages.Add(image);
             canvas_preview.Children.Add(image);
         }
     });
 }
Пример #2
0
 /// <summary>
 /// Erzeuge ein neues zufälliges Tripel
 /// </summary>
 /// <returns></returns>
 public static Triple GenerateRandomTriple()
 {
     Triple t = new Triple();
     for (int i = 0; i < 3; i++)
     {
         ElementColor col = (ElementColor)_random.Next(5);
         t._elements.Add(new Element(col, 3, i));
     }
     return t;
 }
Пример #3
0
 /// <summary>
 /// Vorschau-Tripel übernehmen und Neues generieren
 /// </summary>
 private void GenerateNewTriple()
 {
     Debug.WriteLine("generate triple");
     _linkChain = 0;
     _currentTriple = _previewTriple;
     _previewTriple = Triple.GenerateRandomTriple();
     _moveElements.Clear();  // unnötig?
     _moveElements.AddRange(_currentTriple.Elements);
     if (OnNewPreviewAvailable != null) OnNewPreviewAvailable(_previewTriple);
     if (OnElementsAdded != null) OnElementsAdded(_moveElements);
 }
Пример #4
0
        /// <summary>
        /// Spielstart: Spielfeld initialisieren, Timer starten
        /// </summary>
        public void Init()
        {
            _mode = BoardMode.ElementMove;
            _previewTriple = Triple.GenerateRandomTriple();
            GenerateNewTriple();

            _timer = new Timer(new System.Threading.TimerCallback(TimerEvent), null, 0, 500);
        }