Пример #1
0
        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);
        }