Jak losować z tablicy przycisków?

0

Nie wiem czy watek jest dobrze zatytulowany, ale problem jest tego typu. Mam zadelkarowana tablice 8x8. Tworzy sie ona po klikneciu jakiegos guzika "button" automatycznie jest dodawane zdarzenie ktore po kliknieciu zaznacza guzik na np zielono. Chce teraz dodac do zdarzenia jeszcze timera i aby po kliknieciu na jakis guzik sworzonej planszy w timerze generowany byl tak jakby ruch przeciwnika z innym kolorem np niebieskim? Czyli chce losowac z tej tablicy stworzonej wczesniej jak to wykonac? Moge ew dodac swoj kod. Ale potrzebna mi tylko to co ma byc w timerze metoda jakas..?

to tworzy tablice buttonow

 public void generuj()
        {
            Point punkt = new Point(10, 10);
            for (int j = 0; j < 8; j++)
            {
                for (int i = 0; i < 8; i++)
                {
                    Button pole = new Button();
                    pole.Size = new Size(30, 30);
                    pole.Location = new Point(punkt.X + (28 * i), punkt.Y + (28 * j));
                    pole.Name = "Przycisk" + j.ToString()+ i.ToString();                    
                    pole.Click += new System.EventHandler(this.pole_click);
                    Controls.Add(pole);                 
                    
                }
            }

        }
0

W którym miejscu tworzysz tablicę buttonów?

0
Point punkt = new Point(10, 10);

rysowane jest to na formatce?

wszystko jest ok do momentu o ktory pytam.
chyba ze robie zle od poczatku i trzeba zadakralowac na wstepie jakas tablice i z niej korzystac...

dodanie znacznika <code class="csharp"> - furious programming

0

Nie tworzysz nigdzie tablicy. To Point to jest pojedyncza zmienna, a nie tablica, a tym bardziej tablica przycisków.

chyba ze robie zle od poczatku i trzeba zadakralowac na wstepie jakas tablice i z niej korzystac...

Tak.

Potem losujesz normalnie liczbę - indeks do tablicy.

0
Button[,] pola = new Button[8,8];

public void generuj()
{
    for (int j = 0; j < 8; j++)
        for (int i = 0; i < 8; i++)
        {
            Button pole = new Button();
            pole.Size = new Size(30, 30);
            pole.Location = new Point(10 + 28 * i, 10 + 28 * j);
            pole.Name = "Przycisk" + j.ToString()+ i.ToString();
            pole.Click += new System.EventHandler(this.pole_click);
            pola[i,j] = pole;
         }

    for (int j = 0; j < 8; j++)
        for (int i = 0; i < 8; i++)
            Controls.Add(pola[i,j]);
}

można oczywiście także w jednej pętli.

0
Button pole=(Button)Controls["Przycisk"+rnd.Next(0,9).ToString()+rnd.Next(0,9).ToString()];

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