Z góry dzięki za swój czas. Dobra, od początku. Mam jak widzisz klasy: pole, pionek, gracz, zasady gry, Form1.
class Pole
{
public Image Image;
public Pole(Image image)
{
Image = image;
}
}
class Pionek : Rules
{
public int pozycja;
public Image Image;
public Pionek(int pozycja, Image image)
{
this.pozycja = pozycja;
Image = image;
}
public void RuszSie()
{
pozycja += Rzuc();
}
}
class Gracz
{
public string nick;
public Pionek[] Pionki;
public Gracz(string nick, Pionek[] pionki)
{
this.nick = nick;
Pionki = pionki;
}
}
class Rules
{
public bool Czy6()
{
if (Rzuc() == 6) return true;
else return false;
}
public int Rzuc()
{
Random rnd = new Random();
int wylosowana = rnd.Next(1,6);
return wylosowana;
}
public bool CzyMozliweWyjscie()
{
if (Czy6()) // dodać warunek czy na pozycjach startowych znajdują się pionki
{
return true;
}
else return false;
}
}
public partial class Form1 : Form
{
Bitmap puste = new Bitmap(@"C:\Users\studi\source\repos\Chinczyk\Chinczyk\Resources\pole.png");
Bitmap pionekA = new Bitmap(@"C:\Users\studi\source\repos\Chinczyk\Chinczyk\Resources\graczA.png");
Bitmap pionekC = new Bitmap(@"C:\Users\studi\source\repos\Chinczyk\Chinczyk\Resources\graczC.png");
Pole[] zPole = new Pole[27];
Pionek[] PionkiCzerwonego = new Pionek[2];
Pionek[] PionkiNiebieskiego = new Pionek[2];
public Form1()
{
InitializeComponent();
StworzGre();
Mapa();
}
public void StworzGre()
{
Gracz Czerwony = new Gracz("Adam", PionkiCzerwonego);
Gracz Niebieski = new Gracz("Daniel", PionkiNiebieskiego);
for (int i = 1; i < 27; i++) //
{
zPole[i] = new Pole(puste);
}
PionkiCzerwonego[0] = new Pionek(23, pionekA);
PionkiCzerwonego[1] = new Pionek(24, pionekA);
PionkiNiebieskiego[0] = new Pionek(25, pionekC);
PionkiNiebieskiego[1] = new Pionek(26, pionekC);
zPole[23].Image = pionekA;
zPole[24].Image = pionekA;
zPole[25].Image = pionekC;
zPole[26].Image = pionekC;
NickRed.Text = "Pionki gracza: "+ Czerwony.nick;
NickBlue.Text = "Pionki gracza: "+ Niebieski.nick;
}
public void Mapa()
{
var pictureBoxes = Controls.OfType<PictureBox>().ToList();
foreach (var pictureBox in pictureBoxes)
{
pictureBox.Image = puste;
}
}
}
Moja koncepcja była taka - klikam w dowolnego pictureboxa, funkcja sprawdza mi:
Czy znajduje się tu pionek?(Sprawdza czy dany picturebox.Image != puste) Jeśli tak - którego gracza stoi? Czerwonego - wywoła się funkcja rusz, która do obecnej pozycji doda wyrzuconą cyfrę 1-6.
Jest jakaś inna lepsza koncepcja czy moja jest dobra? Jeśli moja dobra to dążę do tego, że nie wiem jak w funkcji CzyZnajdujeSieTuPionek przekazać jakieś ID które zidentyfikuje mi danego pictureboxa.