private static Tabela RandTabelu(Tabela t) { //t.Otkaci(); Tabela nova = t; Random r = new Random(); int max = t.Matrica.GetLength(0); for(int i = 0; i < t.Matrica.GetLength(0); i++) { for(int j = 0; j < t.Matrica.GetLength(1); j++) { t.TacnaMatrica[i, j] = t.Matrica[i, j]; } } for (int i = 0; i < t.Matrica.GetLength(0); i++) { for (int j = 0; j < t.Matrica.GetLength(1); j++) { int p = r.Next(0, max); int q = r.Next(0, max); Kvadratic k = t.Matrica[i, j]; Kvadratic k2 = t.Matrica[p, q]; t.Pin(); if (k.Pin || k2.Pin) { continue; } else { //MessageBox.Show(Convert.ToString(t.Matrica[0, 0].Pin)); Kvadratic tmp = t.Matrica[i, j]; t.Matrica[i, j] = t.Matrica[p, q]; t.Matrica[p, q] = tmp; Canvas.SetLeft(t.Matrica[i, j].Rect, (t.Matrica[i, j].Rect.Width + 1) * i); Canvas.SetTop(t.Matrica[i, j].Rect, (t.Matrica[i, j].Rect.Height + 1) * j); Canvas.SetLeft(t.Matrica[p, q].Rect, (t.Matrica[p, q].Rect.Width + 1) * p); Canvas.SetTop(t.Matrica[p, q].Rect, (t.Matrica[p, q].Rect.Height + 1) * q); } } } return nova; }
private void Zameni(Point a, Point b) { int prviX = (int)(a.X / (t.Size + 1)); int prviY = (int)(a.Y / (t.Size + 1)); int drugiX = (int)(b.X / (t.Size + 1)); int drugiY = (int)(b.Y / (t.Size + 1)); //MessageBox.Show(prviX.ToString()); if (t.Matrica[prviX, prviY].Pin || t.Matrica[drugiX, drugiY].Pin) return; //MessageBox.Show(t.Matrica[prviX, prviY].ToString()); Kvadratic temp = t.Matrica[prviX, prviY]; t.Matrica[prviX, prviY] = t.Matrica[drugiX, drugiY]; t.Matrica[drugiX, drugiY] = temp; //MessageBox.Show(t.Matrica[prviX, prviY].ToString()); //MessageBox.Show("zamena"); //MessageBox.Show("zamena"); /*for (int i = 0; i < t.Matrica.GetLength(0); i++) { for (int j = 0; j < t.Matrica.GetLength(1); j++) { t.Matrica[i, j] = t.TacnaMatrica[i, j]; } }*/ cnvIgra.InvalidateVisual(); cnvIgra.UpdateLayout(); t.Refresh(); if (Proveri()) { lblBroj.HorizontalAlignment = HorizontalAlignment.Left; lblBroj.VerticalAlignment = VerticalAlignment.Center; lblBroj.Content = "BRAVO!!"; lblBroj.Visibility = Visibility.Visible; } }