コード例 #1
0
        public static void sorting(int[][] work_arr, int n, bool ascending, sortType ST)
        {
            int max_dimension_1 = 0;
            int max_dimension_2 = 0;
            int first_value = 0, second_value = 0;
            for (int k = 0; k < n; k++)
                for (int i = n - 1; i > 0; i--)
                {
                    max_dimension_1 = work_arr[i].Length;
                    max_dimension_2 = work_arr[i - 1].Length;
                    switch (ST)
                    {
                        case sortType.byMaxValueOfLine:
                            {
                                if (ascending)
                                {
                                    if (max_value_in_array(work_arr[i]) > max_value_in_array(work_arr[i - 1]))
                                        swap_lines(work_arr, max_dimension_1, max_dimension_2, i);
                                }
                                else if (max_value_in_array(work_arr[i]) < max_value_in_array(work_arr[i - 1]))
                                    swap_lines(work_arr, max_dimension_1, max_dimension_2, i);
                                break;
                            }
                        case sortType.byMinValueOfLine:
                            {
                                if (ascending)
                                {
                                    if (min_value_in_array(work_arr[i]) > min_value_in_array(work_arr[i - 1]))
                                        swap_lines(work_arr, max_dimension_1, max_dimension_2, i);
                                }
                                else if (min_value_in_array(work_arr[i]) < min_value_in_array(work_arr[i - 1]))
                                    swap_lines(work_arr, max_dimension_1, max_dimension_2, i);
                                break;
                            }
                        case sortType.bySumOfValuesOfLine:
                            {
                                for (int j = 0; j < max_dimension_1; j++)
                                    first_value += work_arr[i][j];
                                for (int j = 0; j < max_dimension_2; j++)
                                    second_value += work_arr[i - 1][j];
                                if (ascending)
                                {
                                    if (second_value < first_value)
                                        swap_lines(work_arr, max_dimension_1, max_dimension_2, i);
                                }
                                else if (second_value > first_value)
                                    swap_lines(work_arr, max_dimension_1, max_dimension_2, i);
                                first_value = 0;
                                second_value = 0;
                                break;
                            }
                    }

                }
        }
コード例 #2
0
ファイル: Base.cs プロジェクト: j0schihatake/Logic_Unity3D
    //Метод срабатывает при нажатии на кнопку старт:
    public void restart()
    {
        //каждый второй раз пытаемся запустить рекламу:
        if (restartCount % 2 == 0)
        {
            unityADS.schoowADS();
        }
        //выключаем кубок
        win.SetActive(false);
        //сортируем случайным образом кнопки
        Point          randomPoint   = null;
        Buttons        randomButton  = null;
        List <Buttons> sortedButtons = new List <Buttons>();
        List <Point>   sortedPoints  = new List <Point>();
        bool           sort          = true;

        //формируем список кнопок которые необходимо отсортировать
        for (int i = 0; i < buttonsList.Count; i++)
        {
            sortedButtons.Add(buttonsList[i]);
        }
        for (int j = 0; j < points.Count; j++)
        {
            sortedPoints.Add(points[j]);
        }
        while (sort)
        {
            //теперь делаем от цикла к циклу следующее:
            if (sortedButtons.Count > 0)
            {
                //итак мы приступили к сортировке(получаем первый случайный элемент):
                randomButton = sortedButtons[getRandomInt(sortedButtons.Count)];
                randomPoint  = sortedPoints[getRandomInt(sortedPoints.Count)];
                //засовываем случайные поинт с кнопкой
                sortedButtons.Remove(randomButton);
                sortedPoints.Remove(randomPoint);
                randomPoint.empty = false;
                //ставим кнопку на ннужное место:
                randomButton.transform.position  = randomPoint.pointPosition;
                randomButton.myPointPosition     = randomPoint.pointPosition;
                randomButton.rend.material.color = randomButton.myColor;
            }
            else
            {
                //делаем оставшийся поинт свободным
                sortedPoints[0].empty = true;
                //очищаем текущее выделение:
                selectedButton = null;
                nextPosition   = Vector3.zero;
                //выходим из зацикливания:
                sort = false;
            }
        }
        restartCount += 1;
    }
コード例 #3
0
 public sortMethod(sortType t, string parm, PlanCallback f)
 {
     _f = f;
     if (sortType.None == t)
     {
     }
     else if (sortType.Interval == t)
     {
         string [] p = parm.Split(',');
         int       p1 = 0, p2 = 0;
         try
         {
             p1 = int.Parse(p[0]);
             p2 = int.Parse(p[1]);
         }
         catch (Exception e)
         {
             p1 = 1000;
             p2 = 1000 * 60 * 60;
         }
         _timer = new Timer(timeCb, null, p1, p2);
     }
     else if (sortType.Timing == t)
     {
         string[] timers = parm.Split(',');
         for (int i = 0; i < timers.Length; ++i)
         {
             try
             {
                 DateTime dt = Convert.ToDateTime(timers[i]);
             }
             catch (Exception e)
             {
                 ConsoleLog.showErrorInfo(i, e.Message + ":datePase Error;" + timers[i]);
                 continue;
             }
             TimeListener.Append(PlanConfig.EveryDayPlan(_f, "EveryDayTask", timers[i]));
         }
     }
     else if (sortType.week == t)
     {
     }
 }
コード例 #4
0
 /// <summary>
 /// Create object to match a particular date
 /// </summary>
 /// <param name="day"></param>
 public DateRangeSort(DateTime day)
 {
     OnDay  = day;
     action = sortType.day;
 }
コード例 #5
0
 /// <summary>
 /// Create object to match against a date range. The range limits are
 /// inclusive: a date that matches the start or end date will return
 /// true
 /// </summary>
 /// <param name="start">From which date we're matching it</param>
 /// <param name="end">Up to which date we're matching it</param>
 public DateRangeSort(DateTime start, DateTime end)
 {
     RangeStart = start;
     RangeEnd   = end;
     action     = sortType.range;
 }