/// <summary> /// 判定するべき要素を判定する /// </summary> /// <returns></returns> public JudgeResult Judge() { var head = _judgeHead; while (_referee.IsOverJudgeAreaLeft(_notes[head])) { //判定エリアより左側だったら次の音符を見る head += 1; if (_tail <= head) { //末尾以降を参照しようとしたとき return(JudgeResult.Ignore); } _judgeHead = head; } //判定する return(_referee.Judge(_notes[head])); }