Ejemplo n.º 1
0
 public JolkaOgraniczenie(JolkaZmienna h, JolkaZmienna v, int r, int c, bool vert)
 {
     horizontal = h;
     vertical   = v;
     row_shift  = r;
     col_shift  = c;
     this.vert  = vert;
     //Console.WriteLine("Horyzontalna:"+h.row_start + " " + h.col_start + " " + col_shift);
     // Console.WriteLine("Wertykalna: "+v.row_start + " " + v.col_start + " " + row_shift);
 }
Ejemplo n.º 2
0
        public void tworzZmienne()
        {
            for (int i = 0; i < cross[0].Length; i++)
            {
                int size = 0;
                for (int j = 0; j < cross.Count; j++)
                {
                    if (cross[j][i].Equals('_'))
                    {
                        size++;
                    }

                    if (cross[j][i].Equals('#') || j == cross.Count - 1)
                    {
                        if (size > 1)
                        {
                            JolkaZmienna zm = new JolkaZmienna();
                            for (int z = 0; z < words.Count; z++)
                            {
                                if (words[z].Length == size)
                                {
                                    zm.values.Add(words[z]);
                                    zm.possiblevalues.Add(words[z]);
                                }
                            }

                            zm.col_start = i;

                            zm.vertical = true;

                            if (cross[j][i].Equals('#'))
                            {
                                zm.row_start = j - size;
                            }
                            else
                            {
                                zm.row_start = j + 1 - size;
                            }
                            zm.size = size;
                            zmienneV.Add(zm);
                            zmienne.Add(zm);
                            notusedZ.Add(zm);
                        }
                        size = 0;
                    }
                }
            }


            for (int i = 0; i < cross.Count; i++)
            {
                int size = 0;
                for (int j = 0; j < cross[0].Length; j++)
                {
                    if (cross[i][j].Equals('_'))
                    {
                        size++;
                    }

                    if (cross[i][j].Equals('#') || j == cross[0].Length - 1)
                    {
                        if (size > 1)
                        {
                            JolkaZmienna zm = new JolkaZmienna();
                            foreach (String w in words)
                            {
                                if (w.Length == size)
                                {
                                    zm.values.Add(w);
                                    zm.possiblevalues.Add(w);
                                }
                            }
                            zm.row_start = i;
                            zm.vertical  = false;
                            //Console.WriteLine("Ile danych: " + zm.values.Count);
                            if (cross[i][j].Equals('#'))
                            {
                                zm.col_start = j - size;
                            }
                            else
                            {
                                zm.col_start = j + 1 - size;
                            }
                            zm.size = size;
                            zmienneH.Add(zm);
                            zmienne.Add(zm);
                            notusedZ.Add(zm);
                        }
                        size = 0;
                    }
                }
            }
        }