private void PutFlag(Polja p, Button b) { if ((p.Vrsta == VrstaPolja.ZATVORENO_POLJE || p.Vrsta == VrstaPolja.MINA) && br_flagova < br_mina) { if (p.Vrsta != VrstaPolja.ZASTAVICA) { b.ImageIndex = 0; p.Vrsta = VrstaPolja.ZASTAVICA; br_flagova++; } } else if (p.Vrsta == VrstaPolja.ZASTAVICA) { if (p.Mine) { p.Vrsta = VrstaPolja.MINA; } else { p.Vrsta = VrstaPolja.ZATVORENO_POLJE; } b.ImageIndex = -1; br_flagova--; } }
public void PrintWin() { for (int l = 0; l < row; l++) { for (int g = 0; g < column; g++) { Polja p = (Polja)(matrix[l, g]).Tag; if (p.Vrsta == VrstaPolja.ZASTAVICA) { if (p.Mine) { p.Vrsta = VrstaPolja.MINA; } else { p.Vrsta = VrstaPolja.ZATVORENO_POLJE; } (matrix[l, g]).ImageIndex = -1; } if (p.Vrsta == VrstaPolja.MINA) { matrix[l, g].ImageIndex = 1; } if (p.Br_mina != 0) { matrix[l, g].Text = p.Br_mina.ToString(); } matrix[l, g].Enabled = false; } } }
public void Matrica_MouseDown(object sender, MouseEventArgs e) { if (administration_mod == false) { Button b = sender as Button; if (b != null) { Polja r = b.Tag as Polja; if (e.Button == System.Windows.Forms.MouseButtons.Left) { if (r != null) { if (r == null) // provera koju sam uveo jer sam imao nekih problema koje sada nemam { return; } if (r.Vrsta == VrstaPolja.MINA) { b.ImageIndex = 3; GameOver(r, b); MessageBox.Show("U step on mine!", "Game Over", MessageBoxButtons.OK, MessageBoxIcon.Information); } else if (r.Vrsta == VrstaPolja.ZASTAVICA) { return; } else if (r.Vrsta == VrstaPolja.ZATVORENO_POLJE) { if (r.Br_mina == 0) { b.Enabled = false; r.Vrsta = VrstaPolja.OTVORENO_POLJE; Open(r, b); //rekurzija } else { b.Text = r.Br_mina.ToString(); b.Enabled = false; } } } } else if (e.Button == System.Windows.Forms.MouseButtons.Right) { PutFlag(r, b); } } } }
public void Print() { //Da mi istampa sva polja for (int l = 0; l < row; l++) { for (int g = 0; g < column; g++) { Polja p = (Polja)(matrix[l, g]).Tag; if (p.Vrsta == VrstaPolja.MINA) { matrix[l, g].ImageIndex = 1; } if (p.Br_mina != 0) { matrix[l, g].Text = p.Br_mina.ToString(); } } } }
public void Matrica_Click(object sender, MouseEventArgs e) { if (administration_mod) { Button b = sender as Button; if (b != null) { Polja p = (Polja)b.Tag; if (p.Vrsta != VrstaPolja.OTVORENO_POLJE) { if (p.Vrsta != VrstaPolja.MINA) { b.ImageIndex = 1; p.Vrsta = VrstaPolja.MINA; br_mina++; } } } } }
private void GenerateMines(int x, int y) { Random r = new Random(); int j, k; for (int i = 0; i < br_mina; i++) { j = r.Next(0, x); k = r.Next(0, y); Polja polje = (Polja)(matrix[j, k].Tag); if (polje.Vrsta == VrstaPolja.MINA) { i--; } else { ((Polja)(matrix[j, k].Tag)).Vrsta = VrstaPolja.MINA; ((Polja)(matrix[j, k].Tag)).Mine = true; } } }
private void Open(Polja r, Button b) { //rekurzija b.Enabled = false; if (r.Vrsta == VrstaPolja.MINA) { b.Enabled = true; return; } if (r.Br_mina > 0) { r.Vrsta = VrstaPolja.OTVORENO_POLJE; b.Text = r.Br_mina.ToString(); ((Polja)(b.Tag)).Vrsta = VrstaPolja.ZATVORENO_POLJE; b.Enabled = false; return; } else { for (int i = (r.Row - 1); i < (r.Row + 2); i++) { if (i >= 0 && i < row) { for (int j = (r.Column - 1); j < (r.Column + 2); j++) { if (j >= 0 && j < column) { if (matrix[i, j].Enabled && ( r.Row != i || r.Column != j)) { r.Vrsta = VrstaPolja.OTVORENO_POLJE; Polja pom = ((Polja)(matrix[i, j].Tag)); Button b1 = matrix[i, j]; Open(pom, b1); } } } } } } }
public void Save(StreamWriter stream) { int br = 0; stream.WriteLine(br_mina); for (int i = 0; i < row; i++) { for (int j = 0; j < column; j++) { Polja p = ((Polja)((matrix[i, j]).Tag)); if (p.Vrsta == VrstaPolja.MINA) { stream.WriteLine(p.Row); stream.WriteLine(p.Column); br++; } if (br == br_mina) { return; } } } }
private void GameOver(Polja n, Button b) { timer.Stop(); //Da mi istampa sva polja i onemoguci igraca da igra for (int l = 0; l < row; l++) { for (int g = 0; g < column; g++) { if (l != n.Row && g != n.Column) { Polja p = (Polja)(matrix[l, g]).Tag; if (p.Vrsta == VrstaPolja.ZASTAVICA) { if (p.Mine) { p.Vrsta = VrstaPolja.MINA; } else { p.Vrsta = VrstaPolja.ZATVORENO_POLJE; } (matrix[l, g]).ImageIndex = -1; } if (p.Vrsta == VrstaPolja.MINA) { matrix[l, g].ImageIndex = 1; } if (p.Br_mina != 0) { matrix[l, g].Text = p.Br_mina.ToString(); } } (matrix[l, g]).Enabled = false; } } }