What is the best way to implement a rank system:
here is the code i will use
public class MyRank
{
private int LevelOneMaxPoints = 100;
private int LevelTwoMinPoints = 200;
private int LevelTwoMaxPoints = 299;
private int LevelThreeMinPoints = 300;
private int LevelThreeMaxPoints = 399;
private int LevelFourMinPoints = 400;
private int LevelFourMaxPoints = 599;
private int LevelFourPlusMinPoints = 600;
private int LevelFourPlusMaxPoints = 999;
private int LevelFiveMinPoints = 1000;
private int LevelFiveMaxPoints = 1299;
private int LevelSixMinPoints = 1300;
private int LevelSixMaxPoints = 2699;
private int LevelSevenMinPoints = 2700;
private int LevelSevenMaxPoints = 3999;
private int LevelEightMinPoints = 4000;
private int LevelEightMaxPoints = 5499;
private int LevelEightPlusMinPoints = 5500;
private int LevelEightPlusMaxPoints = 7499;
private int LevelNineMinPoints = 7500;
private int LevelNineMaxPoints = 9999;
private int LevelTenMinPoints = 10000;
private string LevelOneName = "Private";
private string LevelTwoName = "PV2";
private string LevelThreeName = "Private Fist Class";
private string LevelFourName = "Specialist";
private string LevelFourPlusName = "Corporal";
private string LevelFiveName = "Sergeant";
//private string LevelSixName = "Staff Sergeant";
private string LevelSevenName = "Sergeant First Class";
private string LevelEightName = "Master Sergeant";
private string LevelEightPlusName = "First Sergeant";
private string LevelNineName = "Sergeant Major";
//private string LevelTenName = "Sergeant Major of the Answers";
private int points = 0;
public string RankName { get; private set; }
public MyRank(int points)
{
this.points = points;
RankName = GetRankName();
}
private string GetRankName()
{
if (points >= Int32.MinValue && points <= LevelOneMaxPoints)
return LevelOneName;
else if (points >= LevelTwoMinPoints && points <= LevelTwoMaxPoints)
return LevelTwoName;
else if (points >= LevelThreeMinPoints && points <= LevelThreeMaxPoints)
return LevelThreeName;
else if (points >= LevelFourMinPoints && points <= LevelFourMaxPoints)
return LevelFourName;
else if (points >= LevelFourPlusMinPoints && points <= LevelFourPlusMaxPoints)
return LevelFourPlusName;
else if (points >= LevelFiveMinPoints && points <= LevelFiveMaxPoints)
return LevelFiveName;
else if (points >= LevelSixMinPoints && points <= LevelSixMaxPoints)
return LevelFiveName;
else if (points >= LevelSevenMinPoints && points <= LevelSevenMaxPoints)
return LevelSevenName;
else if (points >= LevelEightMinPoints && points <= LevelEightMaxPoints)
return LevelEightName;
else if (points >= LevelEightPlusMinPoints && points <= LevelEightPlusMaxPoints)
return LevelEightPlusName;
else if (points >= LevelNineMinPoints && points <= LevelNineMaxPoints)
return LevelNineName;
else if (points >= LevelNineMinPoints && points <= LevelNineMaxPoints)
return LevelNineName;
else if (points >= LevelTenMinPoints)
return LevelFourName;
else
return "No Rank";
}
}
Do you think this is the most efficient way to do this?