void krzyzowanie()
  {
      for (int i=0;i<liczba_rozw;i++)
      {
          if (loteria.nextFloat() < prawd_krzyz)
          {
              int drugi = loteria.nextInt(liczba_rozw);      // losowanie drugiego rozwiązania
              int czy_zam_wierszy = loteria.nextInt(2);      // czy zamiana wierszy ( w przeciwnym wypadku kolumn)
              if (czy_zam_wierszy == 1) {
                  int miejsce_przec = 1 + loteria.nextInt(s.liczba_wierszy-1);
                  for (int j=0;j<miejsce_przec;j++)
                      for (int k=0;k<s.liczba_kolumn;k++){
                          int pom = popul_rozw[i].strategia.nry_akcji[0][j][k];
                          popul_rozw[i].strategia.nry_akcji[0][j][k] = popul_rozw[drugi].strategia.nry_akcji[0][j][k];
                          popul_rozw[drugi].strategia.nry_akcji[0][j][k] = pom;
                      }
              }
              else
              {
                  int miejsce_przec = 1 + loteria.nextInt(s.liczba_kolumn-1);
                  for (int j=0;j<miejsce_przec;j++)
                      for (int k=0;k<s.liczba_wierszy;k++){
                          int pom = popul_rozw[i].strategia.nry_akcji[0][k][j];
                          popul_rozw[i].strategia.nry_akcji[0][k][j] = popul_rozw[drugi].strategia.nry_akcji[0][k][j];
                          popul_rozw[drugi].strategia.nry_akcji[0][k][j] = pom;
                      }
              }


              popul_rozw[i].czy_oceniony = 0;
              popul_rozw[drugi].czy_oceniony = 0;
              popul_rozw[i].id = id_rozw; id_rozw++;
              popul_rozw[drugi].id = id_rozw; id_rozw++;
          }
      }
  }