private void ScorePlayer()
 {
     isScoreStep         = true;
     players[curPlayer] += MarbleNum;
     dlCircular          = dlCircular.MoveLeft(7);
     players[curPlayer] += dlCircular.CurrentValue;
     dlCircular          = dlCircular.Remove();
 }
 public MarbleGameCircle(int pCnt)
 {
     playersCnt = pCnt;
     players    = new long[playersCnt];
     dlCircular = new CircularDoubleLinkedList <int>(0);
     MarbleNum  = 0;
     curPlayer  = -1;
 }
 public void NextStep()
 {
     curPlayer = (curPlayer + 1) % playersCnt;
     if (++MarbleNum % 23 == 0)
     {
         this.ScorePlayer();
     }
     else
     {
         isScoreStep = false;
         dlCircular  = dlCircular.MoveRight().Insert(MarbleNum);
     }
 }