Exemple #1
0
    //-------------私有方法------------------------

    /*
     * 生成比较结果的进程
     */
    private void processMarching()
    {
        List <TaskTransform> listTasks      = TaskManager.Instance.GetTasks();
        List <AudioPart>     listAudioParts = AudioEditManagercs.Instance.GetAudioPartsList();

        /*
         * 生成第一次比较结果
         */
        TaskTransform t  = null;
        AudioPart     a  = null;
        TaskResult    tr = null;
        float         matchRateThanTask      = 0;
        float         matchRateThanAudioPart = 0;

        float LOWER_MAIN_BODY_MARCH_RATE = 0.5f;
        int   startMarchIndex            = 0;
        int   stopMarchIndex             = 0;

        for (int i = 0; i < listTasks.Count; ++i)
        {
            t = listTasks[i];
            t.ListTaskResult.Clear();
            for (int z = 0; z < listAudioParts.Count; ++z)
            {
                a = listAudioParts[z];
                matchRateThanTask = ArrayUtil <string> .CaculateRegularSimilar(t.arrStrPingYing, a.textPingYinArr);      //StringUtil.CaculateStringSimilar(t.StrTaskWord, a.strText);// 解决复杂度

                matchRateThanAudioPart = ArrayUtil <string> .CaculateRegularSimilar(a.textPingYinArr, t.arrStrPingYing); //StringUtil.CaculateStringSimilar(a.strText, t.StrTaskWord);

                if (matchRateThanTask >= LOWER_MAIN_BODY_MARCH_RATE)
                {
                    tr           = new TaskResult();
                    tr.MarchRate = (matchRateThanTask + matchRateThanAudioPart) / 2.0f;
                    tr.ListAudioParts.Add(a);
                    t.ListTaskResult.Add(tr);

                    if (matchRateThanAudioPart > matchRateThanTask)
                    {
                        tr           = new TaskResult();
                        tr.MarchRate = (matchRateThanTask + matchRateThanAudioPart) / 2.0f - 0.1f;
                        int index = AudioEditManagercs.Instance.GetIndexByAudioPart(a);
                        if (index != -1)
                        {
                            for (int x = 0; x < 3; x++)
                            {
                                AudioPart apNow = AudioEditManagercs.Instance.GetAudioPartByIndex(index - 1 + x);
                                tr.ListAudioParts.Add(apNow);
                            }
                            t.ListTaskResult.Add(tr);
                        }
                    }
                }
            }
        }


        TaskManager.Instance.SaveTasksConfig();
    }
Exemple #2
0
    /*
     * 标记任务未玩成
     */
    public void MarkUnFinish(TaskTransform task)
    {
        int index = findTaskAtInidex(task);

        if (index != -1)
        {
            task.IsFinish = false;
            setAudioPartFinishOrNotOnSlider(index, task.IsFinish);
        }
    }
Exemple #3
0
 private int findTaskAtInidex(TaskTransform task)
 {
     for (int i = 0; i < listTasks_.Count; ++i)
     {
         if (listTasks_[i] == task)
         {
             return(i);
         }
     }
     return(-1);
 }
Exemple #4
0
 //--------------对外接口--------------------
 public void SetData(TaskTransform t)
 {
     t_ = t;
     t_.ListTaskResult.Sort(
         delegate(TaskResult a, TaskResult b) {
         if (a.MarchRate > b.MarchRate)
         {
             return(-1);
         }
         else
         {
             return(1);
         }
     });
     MyTableViewTaskResult.SetData(t_.ListTaskResult);
 }
Exemple #5
0
    //------------------私有方法----------------

    //------------------对外接口----------------

    public bool InitByExcel(string path, string outputPath)
    {
        strOutPutPath_ = outputPath;
        //if (File.Exists(path))
        // {
        FileStream       stream      = File.Open(path, FileMode.Open, FileAccess.Read);
        IExcelDataReader excelReader = ExcelReaderFactory.CreateOpenXmlReader(stream);
        var result = excelReader.AsDataSet();

        int index = 0;
        int y     = 0;
        //int columns = result.Tables[0].Columns.Count;//获取列数
        int rows = result.Tables[0].Rows.Count;//获取行数

        while (true)
        {
            y = index + 1;
            if (rows <= y)
            {
                break;
            }
            string tempword  = result.Tables[0].Rows[y][2].ToString();
            string tempAudio = result.Tables[0].Rows[y][0].ToString();
            Debug.Log("tempword" + tempword);
            TaskTransform t = new TaskTransform();
            t.ExcelCol       = y;
            t.StrAudioId     = tempAudio;
            t.StrTaskWord    = tempword;
            t.arrStrPingYing = StringUtil.GetPingYingArrayFromChinaString(StringUtil.GetChinaWordFromString(t.StrTaskWord));
            listTasks_.Add(t);
            index++;
        }

        TasksConfig tc = new TasksConfig();

        tc.ListTasks = listTasks_;
        string strJson = JsonUtility.ToJson(tc);

        FileUtil.CreateFile(outputPath, FILE_NAME_TASKS_CONFIG, strJson);

        stream.Close();
        return(true);
        // } //else { return false; }
    }
Exemple #6
0
 /*
  * 打开任务编辑层
  */
 public void OpenEditTaskView(TaskTransform task)
 {
     EditResultLayer.SetData(task);
     EditResultLayer.gameObject.SetActive(true);
 }