Beispiel #1
0
 public void addScore(StageScore ss, string stageName)
 {
     if (stages.ContainsKey(stageName))
     {
         //ステージがあるならば
         ((StageScoreArray)stages[stageName]).add(ss);
     }
     else
     {
         //ステージが無いならば
         stages[stageName] = new StageScoreArray(ss);
     }
 }
Beispiel #2
0
        private void split()
        {
            if (sr == null)
            {
                return;
            }
            string     line;
            StageScore ss;

            while ((line = sr.ReadLine()) != null)
            {
                string[] dataArray = line.Split(',');
                for (int n = 0; (n * 3 + 3) < dataArray.Length; n++)
                {
                    ss       = new StageScore();
                    ss.date  = DateTime.FromBinary(long.Parse(dataArray[n * 3 + 1]));
                    ss.time  = TimeSpan.Parse(dataArray[n * 3 + 2]);
                    ss.score = int.Parse(dataArray[n * 3 + 3]);
                    StageScoreList.getInstance().addScore(ss, dataArray[0]);
                }
            }
        }
Beispiel #3
0
        public void add(StageScore ss)
        {
            if (scores.Count == 0)
            {
                scores.AddLast(ss);
                return;
            }
            LinkedListNode <StageScore> lln = scores.First;

            //追加と同時にソート
            for (int n = 0; n < arrayLimit; n++)
            {
                if (lln == null & n < arrayLimit)
                {
                    //データが登録されていない、かつリミットを超えていない
                    scores.AddLast(ss);
                    break;
                }
                else if (lln.Value.score < ss.score)
                {
                    //新しいほうがスコアが高いならば、比較対象の前に追加
                    scores.AddBefore(lln, ss);
                    break;
                }
                else if (lln.Value.score == ss.score & lln.Value.time.CompareTo(ss.time) == -1)
                {
                    //スコアは同じだが、時間が早い場合、比較対象の前に追加
                    scores.AddBefore(lln, ss);
                    break;
                }
                lln = lln.Next;
            }
            while (scores.Count > arrayLimit)
            {
                //要素数がリミットより大きいなら最後を消去
                scores.RemoveLast();
            }
        }
Beispiel #4
0
 /// <summary>
 /// 先頭にssを追加したStageScoreArrayを作成します
 /// </summary>
 /// <param name="ss">追加したいStageScore</param>
 public StageScoreArray(StageScore ss)
 {
     scores = new LinkedList <StageScore>();
     scores.AddLast(ss);
 }