コード例 #1
0
        public override bool IstZugErlaubt(Schachfeld f)
        {
            int dx = f.X - X;
            int dy = f.Y - Y;

            return(f.X != X && f.Y != Y && dx * dx + dy * dy == 5);
        }
コード例 #2
0
        public override bool IstZugErlaubt(Schachfeld f)
        {
            int dx = f.X - X;
            int dy = f.Y - Y;

            return((dx != 0 || dy != 0) && dx * dx + dy * dy <= 2);
        }
コード例 #3
0
        public MainWindow()
        {
            InitializeComponent();

            for (int y = 0; y < 8; y++)
            {
                for (int x = 0; x < 8; x++)
                {
                    spielbrett[y, x]                      = new Schachfeld(x, y);
                    spielbrett[y, x].MouseEnter          += ShowHints;
                    spielbrett[y, x].MouseLeave          += ClearHints;
                    spielbrett[y, x].MouseLeftButtonDown += BewegeFiguren;
                    theGrid.Children.Add(spielbrett[y, x]);
                }
            }

            spielbrett[1, 1].Figur = new SchwarzerTurm();
            spielbrett[3, 4].Figur = new WeißerTurm();
            spielbrett[2, 6].Figur = new WeißerLäufer();
            spielbrett[4, 3].Figur = new SchwarzerLäufer();
            spielbrett[5, 6].Figur = new SchwarzerKönig();
            spielbrett[3, 6].Figur = new SchwarzerSpringer();
        }
コード例 #4
0
 private void BewegeFiguren(object sender, MouseButtonEventArgs e)
 {
     if (gewähltesFeld == null)
     {
         gewähltesFeld            = sender as Schachfeld;
         gewähltesFeld.Foreground = Brushes.Tomato; // Zur Anzeige, dass dieses Feld gerade angewählt ist.
     }
     else
     {
         if (gewähltesFeld.Figur.IstZugErlaubt(sender as Schachfeld))
         {
             (sender as Schachfeld).Figur = gewähltesFeld.Figur; // Figurenreferenz kopieren
             gewähltesFeld.EntferneFigur();                      // Die Referenz auf dem alten Platz entfernen
             gewähltesFeld.Foreground = Brushes.Black;           // "Selektion" zurücksetzen
             gewähltesFeld            = null;                    // "Selektion" zurücksetzen
         }
         else
         {
             gewähltesFeld.Foreground = Brushes.Black; // "Selektion" zurücksetzen
             gewähltesFeld            = null;          // "Selektion" zurücksetzen
             MessageBox.Show("Zug ist nicht erlaubt!", "Falscher Zug", MessageBoxButton.OKCancel, MessageBoxImage.Error);
         }
     }
 }
コード例 #5
0
 public override bool IstZugErlaubt(Schachfeld f)
 {
     return(f.Y == (f.X - X) + Y ^ f.Y == (X - f.X) + Y);
 }
コード例 #6
0
 public override bool IstZugErlaubt(Schachfeld f)
 {
     return(f.X == X ^ f.Y == Y);
 }
コード例 #7
0
 public abstract bool IstZugErlaubt(Schachfeld f);