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); }
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); }
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(); }
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); } } }
public override bool IstZugErlaubt(Schachfeld f) { return(f.Y == (f.X - X) + Y ^ f.Y == (X - f.X) + Y); }
public override bool IstZugErlaubt(Schachfeld f) { return(f.X == X ^ f.Y == Y); }
public abstract bool IstZugErlaubt(Schachfeld f);