勝率を計算し、プレーヤーに支払われた金額を返すメソッドを定義しました。私はもともと、このタスクを達成するための最も明白な方法としてこれを書いていましたが、コンピューターが実行する作業量を最小限に抑えるためにこれをリファクタリングする最良の方法を知りたいと思っています。これが私の機能です:
int getPay(int winningOdds, int payOut)
{
winningOdds = rand() % MAXIMUM_ODDS + MINIMUM_ODDS;
if(winningOdds == 1)
{
payOut = 4000;
printf("Jackpot! - %d\n", payOut);
}
else if(winningOdds <= 2)
{
payOut = 1000;
printf("Coins won - %d\n", payOut);
}
else if(winningOdds <= 3)
{
payOut = 500;
printf("Coins won - %d\n", payOut);
}
else if(winningOdds <= 40)
{
payOut = 100;
printf("Coins won - %d\n", payOut);
}
else if(winningOdds <= 50)
{
payOut = 50;
printf("Coins won - %d\n", payOut);
}
else if(winningOdds <= 75)
{
payOut = 25;
printf("Coins won - %d\n", payOut);
}
else if(winningOdds <= 1000)
{
payOut = 10;
printf("Coins won - %d\n", payOut);
}
else if(winningOdds <= 3000)
{
payOut = 5;
printf("Coins won - %d\n", payOut);
}
else if(winningOdds <= 5000)
{
payOut = 3;
printf("Coins won - %d\n", payOut);
}
else if(winningOdds <= 10000)
{
payOut = 1;
printf("Coins won - %d\n", payOut);
}
return payOut;
}