Ejemplo n.º 1
0
    public static void UpdateStayTime(string visitPrefabName, float time)
    {
        // * 未初期化に対しての例外発生
        if (!initialized)
        {
            throw new Exception("Uninitialized");
        }

        // * 必要データ取得
        StayData stayData        = datas[visitPrefabName];
        int      visitCount      = stayData.visitCount;
        float    averageStayTime = stayData.averageStayTime;

        // * 更新データ計算
        float sumTime = averageStayTime * visitCount + time;

        visitCount++;
        averageStayTime = sumTime / visitCount;

        // * 更新データをインスタンスに格納
        stayData.visitCount      = visitCount;
        stayData.averageStayTime = averageStayTime;

        // * リストに戻す
        datas[visitPrefabName] = stayData;
    }
Ejemplo n.º 2
0
    public static void SaveSortedByTime(Dictionary <string, string> prefabPointNameDictionary)
    {
        // * 未初期化に対しての例外発生
        if (!initialized)
        {
            throw new Exception("Uninitialized");
        }

        // * 必要データ抽出
        List <Pair> stayDataList = new List <Pair>();

        foreach (string pointName in prefabPointNameDictionary.Keys)
        {
            StayData data = datas[prefabPointNameDictionary[pointName]];
            Pair     pair = new Pair(pointName, data);
            stayDataList.Add(pair);
        }

        // * ソート
        int maxIndex = 0;

        for (int i = 0; i < stayDataList.Count - 1; i++)
        {
            maxIndex = i;
            for (int j = i + 1; j < stayDataList.Count; j++)
            {
                float timeMax = stayDataList[maxIndex].stayData.averageStayTime;
                float timeJ   = stayDataList[j].stayData.averageStayTime;
                if (timeJ > timeMax)
                {
                    maxIndex = j;
                }
            }

            Pair pair = stayDataList[maxIndex];
            stayDataList[maxIndex] = stayDataList[i];
            stayDataList[i]        = pair;
        }

        // * 結果出力
        StreamWriter writer = new StreamWriter(Application.dataPath + "/Resources/Data/SortedByTime.txt", false);

        for (int i = 0; i < stayDataList.Count; i++)
        {
            Pair     pair = stayDataList[i];
            StayData data = pair.stayData;
            string   line = pair.pointName + ": " + data.visitCount + " " + data.averageStayTime;

            writer.WriteLine(line);
        }
        writer.Close();
    }
Ejemplo n.º 3
0
 public Pair(string pointName, StayData stayData)
 {
     this.pointName = pointName;
     this.stayData  = stayData;
 }