本文整理汇总了C#中Box.GetLength方法的典型用法代码示例。如果您正苦于以下问题:C# Box.GetLength方法的具体用法?C# Box.GetLength怎么用?C# Box.GetLength使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Box
的用法示例。
在下文中一共展示了Box.GetLength方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: FindBoxesForRemove
public static bool[,] FindBoxesForRemove(Box[,] playField)
{
int currentSeq = 1;
int bestSeq = int.MinValue;
int bestSeqX = 0;
int bestSeqY = 0;
int bestSeqDirection = 1; // 1 = horizontal; 2 = right
bool finishFlag = false;
bool[,] selectedCells = new bool[playField.GetLength(0), playField.GetLength(1)];
do
{
// horizontal sequences - left to right
for (int x = 0; x < playField.GetLength(0); x++)
{
for (int y = 0; y < playField.GetLength(1) - 1; y++)
{
// Ако цветовете им съвпадат и не са били селектирани вече - ги добавяме в редицата
if (playField[x, y].color == playField[x, y + 1].color && selectedCells[x, y] == false)
{
currentSeq++;
}
else
{
currentSeq = 1;
}
if (currentSeq > bestSeq)
{
bestSeq = currentSeq;
bestSeqX = x;
bestSeqY = y + 1;
bestSeqDirection = 1; // 1 = horizontal
}
}
currentSeq = 1;
}
// vertical sequences - top to down
for (int y = 0; y < playField.GetLength(1); y++)
{
for (int x = 0; x < playField.GetLength(0) - 1; x++)
{
if (playField[x, y].color == playField[x + 1, y].color && selectedCells[x, y] == false)
{
currentSeq++;
}
else
{
currentSeq = 1;
}
if (currentSeq > bestSeq)
{
bestSeq = currentSeq;
bestSeqY = y;
bestSeqX = x + 1;
bestSeqDirection = 2; // 2 = down
}
}
currentSeq = 1;
}
// Populate the bool matrix for selected cells only when the sequence length is longer than 2
if (bestSeq >= 3)
{
switch (bestSeqDirection)
{
case 1: // 1 = horizontal
for (int i = bestSeqY; i >= Math.Abs(bestSeq - bestSeqY - 1); i--)
{
selectedCells[bestSeqX, i] = true;
}
break;
case 2: // 2 = down
for (int i = bestSeqX; i >= Math.Abs(bestSeq - bestSeqX - 1); i--)
{
selectedCells[i, bestSeqY] = true;
}
break;
default:
break;
}
}
else
{
finishFlag = true;
}
currentSeq = 1;
bestSeq = int.MinValue;
bestSeqX = 0;
bestSeqY = 0;
bestSeqDirection = 1; // 1 = horizontal; 2 = right
} while (finishFlag == false);
return selectedCells;
}
示例2: DestroyJewels
private static void DestroyJewels(Box[,] playField, bool[,] boxesToRemove)
{
Thread.Sleep(400); //TODO: Adjust Speed
for (int y = 0; y < playField.GetLength(0); y++)
{
for (int x = 0; x < playField.GetLength(1); x++)
{
if (boxesToRemove[x, y] == true)
{
playField[x, y].InitBox('\u2593'); // Dark-Shade
playField[x, y].DrawBox();
Thread.Sleep(50);
playField[x, y].InitBox('\u2592'); // Medium-Shade
playField[x, y].DrawBox();
Thread.Sleep(50);
playField[x, y].InitBox('\u2591'); // Light-Shade
playField[x, y].DrawBox();
Thread.Sleep(50);
playField[x, y].color = ConsoleColor.Black;
Thread.Sleep(50);
playField[x, y].InitBox('\u2588'); // Restore FULL BLOCK when BLACK!
playField[x, y].DrawBox();
}
}
}
}
示例3: InitPlayField
private static Box[,] InitPlayField()
{
Box[,] playField = new Box[8, 8];
for (int i = 0; i < playField.GetLength(0); i++)
{
for (int j = 0; j < playField.GetLength(1); j++)
{
playField[i, j] = new Box(i * 4 + 1, j * 4 + 1, colors[randColor.Next(0, colors.Length)]);
playField[i, j].InitBox('\u2588'); // Dark-Shade: \u2593; MediumShade: \u2592; LightShade: \u2591
playField[i, j].DrawBox();
}
}
return playField;
}
示例4: isFull
private static bool isFull(Box[,] playField)
{
for (int y = 0; y < playField.GetLength(0); y++)
{
for (int x = 0; x < playField.GetLength(1); x++)
{
if (playField[x, y].color == ConsoleColor.Black)
{
return false;
}
}
}
return true;
}