Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- static void Patikrinti(Plotai sodas, int x, int y, ref List<List<int>> tikrinamasTaskas)
- {
- for (int i = x-1; i <= x+1; i++)
- {
- for(int j=y-1; j<=y+1; j++)
- {
- if (i >= 0 && j >= 0 && i < sodas.nn && j < sodas.mm)
- {
- Console.Write(sodas.Imti(i, j) + " ");
- if (sodas.Imti(i, j) == '*' && i != x && j != y)
- {
- bool arYraTaskas = false;
- List<int> sublistas = new List<int>();
- for (int k = 0; k < tikrinamasTaskas.Count; k++)
- {
- if (tikrinamasTaskas[k][0] == i && tikrinamasTaskas[k][1] == j)
- arYraTaskas = true;
- }
- if (!arYraTaskas)
- {
- sublistas.Add(i);
- sublistas.Add(j);
- tikrinamasTaskas.Add(sublistas);
- }
- }
- }
- }
- }
- Console.WriteLine();
- }
- static void ArLangeliaiNuspalvinti(Plotai sodas, out int ilgiausiosDemesIlgis,out int k,out int kk)
- {
- ilgiausiosDemesIlgis = 0;
- k = 0; kk = 0;
- for (int i=0; i<sodas.nn; i++) // eini per kiekvieną langelį; i - "ciklo kintamasis"
- {
- for(int j=0; j<sodas.mm; j++)
- {
- kk = j;
- List<List<int>> tikrinamiLangeliai = new List<List<int>>();
- List<int> sublist = new List<int>();
- // tikrinamiLangeliai - šiuo metu tikrinamų langelių sąrašas
- if (sodas.Imti(i, j) == '*')
- {
- sublist.Add(i);
- sublist.Add(j);
- tikrinamiLangeliai.Add(sublist);
- } // kad kai einam per visus langelius, bent tą langelį (jei jis nuspalvintas), ant kurio dabar "užėjom" patikrintų
- for (int jj=0; jj<tikrinamiLangeliai.Count; jj++) // eiti per visus langelius, kuriuos reikės tikrint (pastabaa: tikrinant langelius, gali atsirasti dar naujų tikrinamiLangeliai, . ciklo kintamasis j
- {
- Patikrinti(sodas, tikrinamiLangeliai[jj][0], tikrinamiLangeliai[jj][1], ref tikrinamiLangeliai);
- // Console.Write("s ");
- // Jeigu tikrinamasis langelis turėjo kokių langelių, kurie tiko, juos reikės pridėti prie tikrinamiLangeliai list'o (greičiausiai tai implementuoti geriausia Patikrinti methode (nebūtinai))
- }
- Console.WriteLine();
- Console.WriteLine("kazkas " + tikrinamiLangeliai.Count());
- if (tikrinamiLangeliai.Count > ilgiausiosDemesIlgis)
- {
- k = i;
- kk = j;
- ilgiausiosDemesIlgis = tikrinamiLangeliai.Count;
- }
- //Jei didžiausia dėmė: atsiminti dėmės ilgį, atsiminti visilangeliai[i] vietą (kadangi reikia bent vieną dėmės tašką išvesti)
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement