示例#1
0
        public void Initialize()
        {
            getInstance = this;

            Counter = 0;

            scoreRoot = new Score(0x7FFFFFFF); // ルート(スコアとして換算はしないが重要な役割も持つ):int型の最大の数値を代入する

            scoreRoot.Add(FileIO.LoadScore(SaveName));
        }
        public bool Add(Score New)
        {
            // 無限ループの原因となる全く同じインスタンスが来た場合はスルーする
            if (this.Equals(New)) return false;

            // 自身よりも追加する物の方が高い場合
            // 手前に代入する
            if (New.score > this.score) {
                this.back.next = New;
                New.back = this.back;
                New.next = this;
                this.back = New;
                index = -1;
                // 代入した場合はtrueを返す
                return true;
            }
            // 自身以下の場合は後に追加する
            else {
                // 次のオブジェクトがない場合はそのまま代入する
                if (next == null) {
                    this.next = New;
                    New.back = this;
                    New.next = null;
                    index = -1;
                    return true;
                }
                else {
                    index++;
                    if (index > 1000) return false;
                    if (this.next.Add(New))
                        return true;
                }
            }

            return false;
        }
 public Score(int di)
 {
     point = di;
     next = null;
     back = null;
 }
 public Score()
 {
     point = 0;
     next = null;
     back = null;
 }