public void CanAddPointsToScore() { var scoreBoard = new ScoreBoard(); scoreBoard.AddPoint(); scoreBoard.AddPoint(); scoreBoard.Score.Should().Be(2); }
public void CanResetPointsToZero() { var scoreBoard = new ScoreBoard(); scoreBoard.AddPoint(); scoreBoard.AddPoint(); scoreBoard.Reset(); scoreBoard.Score.Should().Be(0); }
public bool EndProcess() { bool result = false; //여기까진 턴플레이어가 안 바뀜 //즉 턴플레이어가 종료된 플레이어 //일단 종료된 값을 올린다. ++m_teamFlag[m_turnPlayer.TeamID]; //팀플래그가 2가 되면 같은 팀이 먼저 났는지 확인을 해봐야 된다. if (m_teamFlag[0] - m_teamFlag[1] == 2) { //스코어 보드에 점수를 더해준다. int teamAAddPoint = 200 + m_players[0].GetBonusPoint() + m_players[2].GetBonusPoint(); m_players[1].SuccesFirst(false); m_players[3].SuccesFirst(false); //A팀이 먼저 2명이 났음 m_nTeamAPoint = m_nTeamAPoint + 200 + m_players[0].GetBonusPoint() + m_players[2].GetBonusPoint(); m_nTeamBPoint = m_nTeamBPoint + m_players[1].GetBonusPoint() + m_players[3].GetBonusPoint(); m_scoreBoardPopup.AddPoint(teamAAddPoint, m_nTeamAPoint, 0, m_nTeamBPoint); m_endRound = true; result = true; } else if (m_teamFlag[1] - m_teamFlag[0] == 2) { //스코어 보드에 점수를 더해준다. int teamBAddPoint = 200 + m_players[0].GetBonusPoint() + m_players[2].GetBonusPoint(); m_players[0].SuccesFirst(false); m_players[2].SuccesFirst(false); //B팀이 먼저 2명이 났음 m_nTeamBPoint = m_nTeamBPoint + 200 + m_players[1].GetBonusPoint() + m_players[3].GetBonusPoint(); m_nTeamAPoint = m_nTeamAPoint + m_players[0].GetBonusPoint() + m_players[2].GetBonusPoint(); m_scoreBoardPopup.AddPoint(0, m_nTeamAPoint, teamBAddPoint, m_nTeamBPoint); m_endRound = true; result = true; } else if (m_teamFlag[0] + m_teamFlag[1] == 3) { //일단 한팀이 2명이 난게 아니다. //그럼 한명만 남은 상황인지 확인을 해보자. //이렇게 되면 남은 플레이어는 1등에게 자기가 먹은 점수를 //자기 손패는 다른 팀에게 점수를 줘야 된다. //일단 이번턴 카드는 현재 플레이어에게 먹어줘야 된다. int teamAAddPoint = 0; int teamBAddPoint = 0; for (int i = 0; i < playerSize; ++i) { if (m_players[i].GetCardCount() > 0) { //이놈이 꼴지다. //1등에서 점수를 주고 //티츄 성공 여부를 확인해주자,. m_players[i].SuccesFirst(false); m_firstPlayer.GivePoint(m_players[i].GetPoint()); m_players[i].SetPoint(0); switch (m_players[i].TeamID) { case 0: { teamBAddPoint = m_players[i].CalcHandCardPoint(); } break; case 1: { teamAAddPoint = m_players[i].CalcHandCardPoint(); } break; } break; } } teamAAddPoint += m_players[0].GetPoint() + m_players[0].GetBonusPoint() + m_players[2].GetPoint() + m_players[2].GetBonusPoint(); teamBAddPoint += m_players[1].GetPoint() + m_players[1].GetBonusPoint() + m_players[3].GetPoint() + m_players[3].GetBonusPoint(); //점수 계산을 하자. m_nTeamAPoint += teamAAddPoint; m_nTeamBPoint += teamBAddPoint; m_scoreBoardPopup.AddPoint(teamAAddPoint, m_nTeamAPoint, teamBAddPoint, m_nTeamBPoint); //라운드 종료 처리 m_endRound = true; result = true; } else { result = false; } if (result) { //ScoreBoard에 티츄 성공여부 정보를 보내자. for (int i = 0; i < playerSize; ++i) { m_scoreBoardPopup.LastScoreItem().SetTichuInfo(m_players[i].IsCallTichu(), m_players[i].IsCallLargeTichu(), m_players[i] == m_firstPlayer, i); } } //그 이외에 종료조건이 아니다. 그냥 나가자? return(result); }