//ustalamy pozycje: potrzebna jest matryca (przede wszystkim tablica zajetosci) i punkt (domyślny punkt zaczepienia, tj. 0,0) public bool ustal_pozycje(Punkt p, Matryca m, int odstep) { bool start = false; if (polozenie_poczatkowe_prostokat(p, m.zajetosc_x, odstep)) //sprawdzamy czy w ogóle można umieścić prostokąt na matrycy { start = true; idz_max_w_gore(p, m.zajetosc_x, odstep); idz_max_w_prawo(p, m.zajetosc_x, odstep); idz_max_w_gore(p, m.zajetosc_x, odstep); aktualizacja_tablic_zajetosci(p, m.zajetosc_x); //po wykonaniu powyższych trzech kroków, znajdujemy punkt zaczepienia prostokąta na matrycy i aktualizujemy tablicę zajętości } return(start); }
//KONSTRUKTOR public Rozmieszczenia(int liczba_figur, Matryca m, int odleglosc, int[] tab_indeksow = null) { lista_matryc = new List <Matryca>(); lista_matryc.Add(m); lokalizacja_figur = new MatrycaFiguraPunkt[liczba_figur]; indeksy = new int[liczba_figur]; odstep = odleglosc; NajPowPro = 0; WolPowNrMat = 0; NajPowProNr = 0; if (tab_indeksow != null) { for (int i = 0; i < liczba_figur; i++) { lokalizacja_figur[i] = new MatrycaFiguraPunkt(1, null, new Punkt()); indeksy[i] = tab_indeksow[i]; } } }