Point calculation
This commit is contained in:
@ -161,7 +161,8 @@ namespace WinGreed
|
|||||||
}
|
}
|
||||||
|
|
||||||
string outPut = CheckForDifferentOutCome(numbers);
|
string outPut = CheckForDifferentOutCome(numbers);
|
||||||
|
txtMaxValue.Text = outPut;
|
||||||
|
txtMaxValue.Refresh();
|
||||||
numbers.ForEach(x => Debug.Write($"{x}, "));
|
numbers.ForEach(x => Debug.Write($"{x}, "));
|
||||||
Debug.WriteLine(" -");
|
Debug.WriteLine(" -");
|
||||||
|
|
||||||
@ -170,7 +171,140 @@ namespace WinGreed
|
|||||||
|
|
||||||
private string CheckForDifferentOutCome(List<int> numbers)
|
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)
|
private void btnDiceTmpl_Click(object sender, EventArgs e)
|
||||||
|
|||||||
Reference in New Issue
Block a user