static void Main(string[] args) { StrGen pom; Console.WriteLine("Wprowadź tekst: "); //haslo - tekst do odgadnięcia string haslo = Console.ReadLine(); //tworzymy obiekt klasy StrGen (generujemy losowe znaki o długości hasła). StrGen zagadka = new StrGen(haslo.Length); //obliczamy funkcję przystosowania dla zagadki i wyświetlamy wygenerowane dane int fitnes = zagadka.Wysw(haslo); // szukamy rozwiązania do momentu aż wszystkie znaki będą poprawne (fitnes = haslo.Length) while (fitnes < haslo.Length) { //tworzymy zmutowany obiekt pom = zagadka.Mutacja(); //jeżeli funkcja przystosowania jest lepsza, zamieniamy go z oryginałem i wyświetlamy if (pom.Fitnes(haslo) > fitnes) { zagadka = pom; fitnes = zagadka.Wysw(haslo); } } Console.ReadKey(); }
// tworzymy nowy obiekt który różni się jednym znakiem (losowa pozycja, losowy znak) public StrGen Mutacja() { StrGen pom = new StrGen(dane); pom.dane[r.Next(dane.Count)] = ZbGen[r.Next(ZbGen.Length)]; return(pom); }