Point calculation
This commit is contained in:
@ -161,7 +161,8 @@ namespace WinGreed
|
||||
}
|
||||
|
||||
string outPut = CheckForDifferentOutCome(numbers);
|
||||
|
||||
txtMaxValue.Text = outPut;
|
||||
txtMaxValue.Refresh();
|
||||
numbers.ForEach(x => Debug.Write($"{x}, "));
|
||||
Debug.WriteLine(" -");
|
||||
|
||||
@ -170,7 +171,140 @@ namespace WinGreed
|
||||
|
||||
private string CheckForDifferentOutCome(List<int> numbers)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
var outPut = "";
|
||||
var sum = 0;
|
||||
numbers.Sort();
|
||||
sum = CheckForDoubleTriple(numbers);
|
||||
sum += CheckForTripleDouble(numbers);
|
||||
sum += CheckForSerial(numbers);
|
||||
sum += CheckForThreeOrMore(numbers);
|
||||
outPut=sum.ToString();
|
||||
return outPut;
|
||||
}
|
||||
|
||||
private int CheckForSerial(List<int> numbers)
|
||||
{
|
||||
for(int i = 0; i < numbers.Count; i++)
|
||||
{
|
||||
if(numbers[i] != i + 1)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
return 1500;
|
||||
}
|
||||
|
||||
private int CheckForThreeOrMore(List<int> numbers)
|
||||
{
|
||||
var result = 0;
|
||||
|
||||
var ones = 0;
|
||||
var twos = 0;
|
||||
var threes = 0;
|
||||
var fours = 0;
|
||||
var fives = 0;
|
||||
var sixs = 0;
|
||||
|
||||
if(numbers.Count > 2)
|
||||
{
|
||||
foreach(var number in numbers)
|
||||
{
|
||||
switch (number)
|
||||
{
|
||||
case 1:
|
||||
{
|
||||
ones++;
|
||||
break;
|
||||
}
|
||||
case 2:
|
||||
{
|
||||
twos++;
|
||||
break;
|
||||
}
|
||||
case 3:
|
||||
{
|
||||
threes++;
|
||||
break;
|
||||
}
|
||||
case 4:
|
||||
{
|
||||
fours++;
|
||||
break;
|
||||
}
|
||||
case 5:
|
||||
{
|
||||
fives++;
|
||||
break;
|
||||
}
|
||||
case 6:
|
||||
{
|
||||
sixs++;
|
||||
break;
|
||||
}
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
result += NumberCounts(ones, 1);
|
||||
result += NumberCounts(twos, 2);
|
||||
result += NumberCounts(threes, 3);
|
||||
result += NumberCounts(fours, 4);
|
||||
result += NumberCounts(fives, 5);
|
||||
result += NumberCounts(sixs, 6);
|
||||
}
|
||||
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
public int NumberCounts(int value,int nmbr)
|
||||
{
|
||||
if (value > 2)
|
||||
{
|
||||
var back = nmbr*(nmbr==1?1000:100);
|
||||
if (value > 3)
|
||||
{
|
||||
back *= 2;
|
||||
}
|
||||
if (value > 4)
|
||||
{
|
||||
back *= 2;
|
||||
}
|
||||
if (value > 5)
|
||||
{
|
||||
back *= 2;
|
||||
}
|
||||
return back;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
private int CheckForTripleDouble(List<int> numbers)
|
||||
{
|
||||
if (numbers.Count == 6
|
||||
&& numbers[0] == numbers[1]
|
||||
&& numbers[2] == numbers[3]
|
||||
&& numbers[4] == numbers[5]
|
||||
&& numbers[1] != numbers[2]
|
||||
&& numbers[3] != numbers[4]
|
||||
&& numbers[0] != numbers[5])
|
||||
{
|
||||
return 1500;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
private int CheckForDoubleTriple(List<int> numbers)
|
||||
{
|
||||
if(numbers.Count == 6
|
||||
&& numbers[0] == numbers[2]
|
||||
&& numbers[3] == numbers[5]
|
||||
&& numbers[2] != numbers[3])
|
||||
{
|
||||
return 1500;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
private void btnDiceTmpl_Click(object sender, EventArgs e)
|
||||
|
||||
Reference in New Issue
Block a user