Random, ciągle ta sama liczba.

0

Hej mam pewien problem, mianowicie metoda Random losuje mi zawsze tą samą liczbę. Już pokazuje Wam przykład (Gra opiera się na wyścigach psów)

Mam taki kod w timer1_Tick

screenshot-20170623114836.png

Co chwilę jest wywoływane psy[i].Run(); (Dla każdego psa)
Kod Run() wygląda tak
screenshot-20170623115018.png

Problem tkwi w tym, że psy ruszają się, ale tak samo, nie ma losowości do poszczególnego psa.

0

Na życzenie
Timer1_Tick

        private void timer1_Tick(object sender, EventArgs e)
        {

            bool stop = false;
            for(int i=0; i < 4; i++)
            {
                stop = psy[i].Run();
            }

            if (stop)
            {
                timer1.Stop();
                for (int i = 0; i < 4; i++)
                {
                    psy[i].TakeStartingPosition();
                }
            }
        }

Metoda Run()

        public bool Run()
        {
            MyRandom = new Random();

            MyPictureBox.Left += MyRandom.Next(1, 10);
            if(MyPictureBox.Left >= 480)
            {
                return true;
            }
            return false;
        }
3

Bo tworzysz nowy obiekt Random przy każdym wywołaniu metod zamiast utworzyć go raz jako statyczne pole klasy.

0

public static Random MyRandom = new Random();
Pomogło, dzięki wielkie.

1 użytkowników online, w tym zalogowanych: 0, gości: 1