Wyrażenie lambda - zmiana lokalizacji pionka.

0

Cześć,
w skrócie:
mam listę pól w grze

 class Pozycja
    {
        public Pozycja(int nrPola, int pozX, int pozY)
        {
            NrPola = nrPola;
            pozX = PozX;
            pozY = PozY;
        }

        public int NrPola { get; set; }
        public int PozX { get; set; }
        public int PozY { get; set; }
    }

i 40 pozycji różnych pól na planszy, pobieram wylosowaną ilość oczek z kości i chcę zmienić lokalizacje pionka "Pionekg1" do wylosowanego numeru pola "nrPola"

public void RuchPionka()
        {
            
           if ((_kostka.AktualnieWylosowano + _kostka.AktualnieWylosowano2) > 0)  //jeżeli to co jest wylosowane na kostkach jest > 0 to gracz się przesuwa o wylosowana ilośc pozycji
           {
                Pozycja pole = pozycje.Find(x => x.NrPola == (_kostka.AktualnieWylosowano + _kostka.AktualnieWylosowano2));
                _form1.Pionekg1.Location = pole.NrPola;
           }

        }

Wyskakuje błąd:
Cannot implicitly convert type 'int' to 'System.Drawing.Point'.

0

Cannot implicitly convert type 'int' to 'System.Drawing.Point'.

Błędy trzeba czytać, i starać się zrozumieć.

Gdzieś (nie przyglądam się kodowi…) próbujesz przypisać inta do Pointa.

0

_form1.Pionekg1.Location = pole.NrPola;

"_form1.Pionekg1.Location" to typ Point, a "pole.NrPola" to int, dlatego masz błąd.

0
endrique napisał(a):

_form1.Pionekg1.Location = pole.NrPola;

"_form1.Pionekg1.Location" to typ Point, a "pole.NrPola" to int, dlatego masz błąd.

Czyli jak mam rzutować aby pionek zmienił lokalizację na pobrany numer z listy (przypisuje ilość wyrzuconych oczek w dwóch kościach
)? właśnie tutaj jest problem:(

0

Pole Location twojego pionka ma typ Point czyli przechowuje dane o położeniu w przestrzeni dwuwymiarowej (x, y).
Typ int to po prostu jedna liczba. Zastanów się co chcesz zrobić z tym położeniem i do czego je wykorzystać.

0
sainser napisał(a):

Pole Location twojego pionka ma typ Point czyli przechowuje dane o położeniu w przestrzeni dwuwymiarowej (x, y).
Typ int to po prostu jedna liczba. Zastanów się co chcesz zrobić z tym położeniem i do czego je wykorzystać.

Chciałbym go wykorzystać aby dostać się do któregoś z elementów listy(pozycji na planszy):

public Pozycja(int nrPola, int pozX, int pozY)

przykładowo do:

pozycje.Add(new Pozycja(12, 17, 504));

gdy kości wylosują w tym przypadku liczbę 12 przenosze się na nrPola=12.

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