private void btnRemoveTable_Click(object sender, RoutedEventArgs e) { //Levesszük az összes királynőt a tábláróé RemoveQueenFromChessTable(); //A lépéseket nullázuk _step = 0; //A példányt nullázuk _queen_alg = null; //Üresre tesszüka kezdő poziciót tbFirstQueenPosition.Text = ""; //Engedélyezzük a bevíteli mezőt tbFirstQueenPosition.IsEnabled = true; //Engedélyezzük a startgombot btnStart.IsEnabled = true; //letiltjuk tábla törlése gombot btnRemoveTable.IsEnabled = false; }
//Start gomb private void btnStart_Click(object sender, RoutedEventArgs e) { //A kezdő pozicióhoz egy két elemes int tömb int[] pos = new int[2]; //a tbFirstQueenPosition-ben megafott Betű - Szám párost átkovertája indexekké ha 9 9 a tömb tartalma akkor érvénytelen a pozició pos = QueenAlgorythm.GetNumPosition(tbFirstQueenPosition.Text); //HA üres a tbFirstQueenPosition akkor egy random pozicióval kezd if (tbFirstQueenPosition.Text == string.Empty) { Random rnd = new Random(); pos[0] = rnd.Next(0, 7); pos[1] = rnd.Next(0, 7); MessageBox.Show($"Nem adott meg kezdő helyet!\nRandom hely: {QueenAlgorythm.GetAlpPostion(pos)}", "Info", MessageBoxButton.OK, MessageBoxImage.Information); } else { //Ha van benne érték akkor valid ha nem 99 különben vége a metódusnak bool isValid = pos[0] != 99 && pos[1] != 99; if (!isValid) { MessageBox.Show($"Érvénytelen helyet adott meg!", "Error", MessageBoxButton.OK, MessageBoxImage.Error); return; } } //LEtiltjuk a kezdő pozició bevíteli mezőjét tbFirstQueenPosition.IsEnabled = false; //letiltjuk a start gombot btnStart.IsEnabled = false; //példányosítjuk az algoritmust, a kezdő pozicióval _queen_alg = new QueenAlgorythm(pos[0], pos[1]); //Meghívjuk a Solve metódust az elkészíti az összes lépést _queen_alg.Solve(); //beállítjuk az időzítő sebességét _timer.Interval = TimeSpan.FromMilliseconds(1000 - sSpeed.Value); //elindítjuk az időzítőt _timer.Start(); }