本文整理汇总了C#中GameState.Width方法的典型用法代码示例。如果您正苦于以下问题:C# GameState.Width方法的具体用法?C# GameState.Width怎么用?C# GameState.Width使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类GameState
的用法示例。
在下文中一共展示了GameState.Width方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: GameState
public GameState(GameState gs)
: this(gs.map, gs.Width(), gs.Height(), new Point(gs.MyX(), gs.MyY()), new Point(gs.OpponentX(), gs.OpponentY()))
{
this.map = (bool[,])gs.map.Clone();
}
示例2: FloodFill
private static int FloodFill(GameState gs, int x, int y)
{
Queue<Point> q = new Queue<Point>();
int total = 0;
// shallow copy array
bool[,] map = (bool[,])gs.map.Clone();
q.Enqueue(new Point(x,y));
map[x,y] = false;
//Console.Error.WriteLine(x + " " + y);
while(q.Count > 0) {
Point n = q.Dequeue();
if (n.X < 0 || n.Y < 0 || n.X >= gs.Width() || n.Y >= gs.Height())
continue;
// process neighbours, mark as visited and increment count
if (!map[n.X, n.Y]) {
q.Enqueue(new Point(n.X+1, n.Y));
q.Enqueue(new Point(n.X-1, n.Y));
q.Enqueue(new Point(n.X, n.Y-1));
q.Enqueue(new Point(n.X, n.Y+1));
map[n.X,n.Y] = true;
total++;
}
}
return total;
}