https://www.codewars.com/kata/dots-and-boxes-validator/csharp
이문제의 해답인데 (이거 앞에 존나 긴게 내 해답 ㅅㅂ)
public class DnB
{
public static int[] DotsAndBoxes(int[][] r)
{
int[] score = { 0, 0 };
int dimension = (int)Math.Sqrt(r.Length / 2) + 1;
var boxes = Enumerable.Range(dimension, dimension * dimension - dimension)
.Where(i => i % dimension > 0)
.Select(i => new int[][]
{
new[] { i - dimension - 1, i - dimension },
new[] { i - dimension - 1, i - 1 },
new[] { i - 1, i },
new[] { i - dimension, i }
}).ToArray();
var boxSides = new int[dimension * dimension];
for (int l = 0, pts = 0, turn = 0;
l < r.Length;
l++, pts = 0, turn++)
{
Array.Sort(r[l]);
for (int i = 0; i < boxes.Length; i++)
{
if (boxes[i].Any(z => z[0] == r[l][0] && z[1] == r[l][1]))
{
boxSides[i]++;
if (boxSides[i] == 4) pts++;
}
}
if (pts > 0) score[(turn--) % 2] += pts;
}
return score;
}
다 떠나서 for 문에 카운터가 한개 이상 존재할 수 있다는데서 우주의 카오스를 느꼈음
for (int l = 0, pts = 0, turn = 0;
l < r.Length;
l++, pts = 0, turn++)
재밌게 꼬았네
아직 이해는 못함
타일게임이었구나 내가 하던겜 코드가 이건가