本文整理汇总了C#中Square类的典型用法代码示例。如果您正苦于以下问题:C# Square类的具体用法?C# Square怎么用?C# Square使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
Square类属于命名空间,在下文中一共展示了Square类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: moveToDest
/**
* Set piece to move to specified square
* TODO: make it an arc instead of teleport
*/
public override void moveToDest(Square s)
{
tile.Occupant = null;
s.Occupant = this;
this.tile = s;
((Transform)this.GetComponent (typeof(Transform))).localPosition = s.Position;
}
示例2: Render
/// <summary>
/// Renders a single square on the given graphics context on the specified
/// rectangle.
///
/// <param name="square">The square to render.</param>
/// <param name="g">The graphics context to draw on.</param>
/// <param name="r">The position and dimension for rendering the square.</param>
// tag::render[]
private void Render(Square square, Graphics g, Rectangle r) {
Point position = r.Position;
square.Sprite.Draw(g, r);
foreach (Unit unit in square.Occupants) {
unit.Sprite.Draw(g, r);
}
}
示例3: MovePiece
public void MovePiece(Square startingSquare, Square destinationSquare)
{
if (IsOutOfBounds(startingSquare, destinationSquare))
{
PlayerMessage = "Illegal Move";
return;
}
var piece = _pieceLocations[startingSquare];
var otherPiece = _pieceLocations[destinationSquare];
if (otherPiece != null && !IsCapture(piece,otherPiece))
{
PlayerMessage = "Illegal Move";
return;
}
if (piece.IsValidMove(startingSquare, destinationSquare, IsCapture(piece, otherPiece)))
{
_pieceLocations[startingSquare] = null;
this.PlayerMessage = string.Format("{0} to {1}", piece.Name, destinationSquare);
if(IsCapture(piece, otherPiece))
this.PlayerMessage += string.Format(". {0} takes {1}", piece.Name, otherPiece.Name);
_pieceLocations[destinationSquare] = piece;
}
else
PlayerMessage = "Illegal Move";
}
示例4: MainForm
public MainForm()
{
InitializeComponent();
controller = new Controller(this);
int panelWidth = this.MainBoard.Width;
int squareMargin = 10;
int width = panelWidth / 4;
int size = 150;
blocks = new Square[4, 4];
for (int i = 0; i < 4; i++)
{
for (int j = 0; j < 4; j++)
{
Square block = new Square();
blocks[i, j] = block;
block.Left = j * size;
block.Top = i * size;
block.Width = size;
block.Height = size;
block.Visible = true;
block.BackColor = Color.FromArgb(0, 100, 100, 100);
block.Margin = new Padding(squareMargin);
MainBoard.Controls.Add(block);
}
}
}
示例5: GetAvailableMove
/// <summary>
/// <paramref name="srcSquare"/>の駒を<paramref name="dstSquare"/>
/// に動かすことが可能な指し手をすべて列挙します。
/// </summary>
private IEnumerable<BoardMove> GetAvailableMove(BWType bwType,
Square srcSquare,
Square dstSquare)
{
var piece = this[srcSquare];
if (piece == null || piece.BWType != bwType)
{
yield break;
}
var move = new BoardMove()
{
DstSquare = dstSquare,
SrcSquare = srcSquare,
MovePiece = piece.Piece,
BWType = bwType,
};
// 成り駒でなければ、成る可能性があります。
if (!piece.IsPromoted)
{
move.IsPromote = true;
if (CanMove(move, MoveFlags.CheckOnly))
{
// yield returnなのでCloneしないとまずい。
yield return move.Clone();
}
}
move.IsPromote = false;
if (CanMove(move, MoveFlags.CheckOnly))
{
yield return move;
}
}
示例6: OnUpdate
public override void OnUpdate(long msec)
{
var tanks = from node in World.Downwards
where node.Name == "MyTank" || node.Name == "EnemyTank"
select node;
foreach (var cmp in points.Components) {
points.Detach (cmp);
}
foreach (var tank in tanks) {
var spr = new Sprite (2, 2);
spr.Color = Color.Black;
spr.Offset = new Vector2 (tank.Translation.X / 10f,
tank.Translation.Y / 10f);
points.Attach (spr);
}
var cam = World.ActiveCamera;
var frame = new Square (80, 60, 2);
frame.Offset = new Vector3 (cam.Position.X / 10f,
cam.Position.Y / 10f,
cam.Position.Z / 10f);
points.Attach (frame);
}
示例7: Main
public static void Main()
{
Square square = new Square(0, 0, 10);
Rectangle rect = new Rectangle(0, 0, 10, 12);
Circle circle = new Circle(0, 0, 5);
if (square is IShape)
{
Console.WriteLine("{0} is IShape", square.GetType());
}
if (rect is IResizable)
{
Console.WriteLine("{0} is IResizable", rect.GetType());
}
if (circle is IResizable)
{
Console.WriteLine("{0} is IResizable", circle.GetType());
}
IShape[] shapes = { square, rect, circle };
foreach (IShape shape in shapes)
{
shape.SetPosition(5, 5);
Console.WriteLine(
"Type: {0}; surface: {1}",
shape.GetType(),
shape.CalculateSurface());
}
}
示例8: TriangulateSquare
void TriangulateSquare(Square square) {
switch (square.configuration) {
case 0:
break;
// 1 points:
case 1:
MeshFromPoints(square.centreBottom, square.bottomLeft, square.centreLeft);
break;
case 2:
MeshFromPoints(square.centreRight, square.bottomRight, square.centreBottom);
break;
case 4:
MeshFromPoints(square.centreTop, square.topRight, square.centreRight);
break;
case 8:
MeshFromPoints(square.topLeft, square.centreTop, square.centreLeft);
break;
// 2 points:
case 3:
MeshFromPoints(square.centreRight, square.bottomRight, square.bottomLeft, square.centreLeft);
break;
case 6:
MeshFromPoints(square.centreTop, square.topRight, square.bottomRight, square.centreBottom);
break;
case 9:
MeshFromPoints(square.topLeft, square.centreTop, square.centreBottom, square.bottomLeft);
break;
case 12:
MeshFromPoints(square.topLeft, square.topRight, square.centreRight, square.centreLeft);
break;
case 5:
MeshFromPoints(square.centreTop, square.topRight, square.centreRight, square.centreBottom, square.bottomLeft, square.centreLeft);
break;
case 10:
MeshFromPoints(square.topLeft, square.centreTop, square.centreRight, square.bottomRight, square.centreBottom, square.centreLeft);
break;
// 3 point:
case 7:
MeshFromPoints(square.centreTop, square.topRight, square.bottomRight, square.bottomLeft, square.centreLeft);
break;
case 11:
MeshFromPoints(square.topLeft, square.centreTop, square.centreRight, square.bottomRight, square.bottomLeft);
break;
case 13:
MeshFromPoints(square.topLeft, square.topRight, square.centreRight, square.centreBottom, square.bottomLeft);
break;
case 14:
MeshFromPoints(square.topLeft, square.topRight, square.bottomRight, square.centreBottom, square.centreLeft);
break;
// 4 point:
case 15:
MeshFromPoints(square.topLeft, square.topRight, square.bottomRight, square.bottomLeft);
break;
}
}
示例9: Move
public override void Move(Square origin, Square destination)
{
base.Move(origin, destination);
HandleKingsideCastling(origin, destination);
HandleQueensideCastling(origin, destination);
}
示例10: DestinationIsAttacked
private bool DestinationIsAttacked(Square destination)
{
var currentPosition = Board.GetPosition();
return currentPosition.SquaresOccupiedByPiecesWith(Color.GetOppositeColor())
.Any(opponentSquare => opponentSquare.Occupier.Attacks(opponentSquare, destination));
}
示例11: getChild
private Tuple<MoveNode, double> getChild(Square square)
{
instances++;
MoveNode node = new MoveNode(board, square, evaluator);
if (square.number == 2) return Tuple.Create(node, 0.9);
else return Tuple.Create(node, 0.1);
}
示例12: setupBoard
void setupBoard() {
colors[0] = Color.Green;
colors[1] = Color.Pink;
colors[2] = Color.Purple;
colors[3] = Color.SpringGreen;
colors[4] = Color.Red;
colors[5] = Color.Yellow;
Random rnd = new Random();
for (int x = 0; x < 14; ++x) {
for (int y = 0; y < 14; ++y) {
Square s = new Square();
s.c = colors[rnd.Next(0,6)];
s.x = x;
s.y = y;
s.xPos = x * GridSize + GridPosX;
s.yPos = y * GridSize + GridPosY;
board[x, y] = s;
}
}
root = board[0, 0];
root.root = true;
root.rank = 99;
for (int x = 0; x < 14; ++x) {
for (int y = 0; y < 14; ++y) {
Square s = board[x, y];
if (x > 0) s.left = board[x - 1, y];
if (x < 13) s.right = board[x + 1, y];
if (y > 0) s.up = board[x, y - 1];
if (y < 13) s.down = board[x, y + 1];
}
}
}
示例13: SquareAt
public Square SquareAt(int x, int y)
{
switch (Orientation)
{
case Orientation.North:
return Piece.SquareAt(x, y);
case Orientation.South:
{
var square = Piece.SquareAt(Width - x - 1, Height - y - 1);
if (square != null)
square = new Square(x, y, square.Colour);
return square;
}
case Orientation.East:
{
var square = Piece.SquareAt(Height - y - 1, x);
if (square != null)
square = new Square(x, y, square.Colour);
return square;
}
case Orientation.West:
{
var square = Piece.SquareAt(y, Width - x - 1);
if (square != null)
square = new Square(x, y, square.Colour);
return square;
}
default:
return null;
}
}
示例14: moveTo
public override bool moveTo(Square s)
{
if (s != null)
{
if (s.isWalkable())
{
if (s.mayContainBarricade())
{
if (s.isOccupied())
{
return false;
}
else
{
s.Piece = this;
Square = s;
Player.Baricade = null;
Player = null;
return true;
}
}
}
}
return false;
}
示例15: Attacking
private bool Attacking(Square origin, Square destination)
{
return (origin.Color != destination.Color
&& destination.Color != PieceColor.Empty
&& origin.DistanceOfRanksIsOneTo(destination)
&& origin.DiagonallyForwardTo(destination));
}