当前位置: 首页>>代码示例>>C#>>正文


C# Piece类代码示例

本文整理汇总了C#中Piece的典型用法代码示例。如果您正苦于以下问题:C# Piece类的具体用法?C# Piece怎么用?C# Piece使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


Piece类属于命名空间,在下文中一共展示了Piece类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: SanityCheck_GivenInsaneDataDueToWrongNumberOfBlackAndWhiteSquares_ReturnsFalse

        public void SanityCheck_GivenInsaneDataDueToWrongNumberOfBlackAndWhiteSquares_ReturnsFalse()
        {
            // Arrange
            var board = new Board(TestBoardSize);
            var solver = new Solver();
            var bogusPieceD = new Piece(
                new[]
                    {
                        //  B
                        //  W
                        // WW
                        new Square(0, 0, Colour.White),
                        new Square(1, 0, Colour.White),
                        new Square(1, 1, Colour.White),
                        new Square(1, 2, Colour.Black)
                    },
                'D');
            var pieceFeeder = new PieceFeeder(Piece.TestPieceA, Piece.TestPieceB, Piece.TestPieceC, bogusPieceD);

            // Act
            var actual = solver.SanityCheck(board, pieceFeeder);

            // Assert
            Assert.That(actual, Is.False);
        }
开发者ID:taylorjg,项目名称:DraughtBoardPuzzle,代码行数:25,代码来源:SolverTests.cs

示例2: TestExplosions

        public void TestExplosions()
        {
            Piece[][] board = new Piece[8][]
            {
                new Piece[8] { o, o, o, o, kb, o, o, o },
                new Piece[8] { o, o, o, o, o, o, o, o },
                new Piece[8] { o, o, o, o, o, o, o, o },
                new Piece[8] { o, o, o, pw, qb, o, o, o },
                new Piece[8] { o, o, o, bw, pb, o, o, o },
                new Piece[8] { o, o, o, o, o, o, nw, o },
                new Piece[8] { o, o, o, o, o, o, o, o },
                new Piece[8] { o, o, o, o, kw, o, o, o }
            };

            AtomicChessGame game = new AtomicChessGame(board, Player.White);
            Assert.AreEqual(game.ApplyMove(new Move("G3", "E4", Player.White), true), MoveType.Move | MoveType.Capture);

            Piece[][] expected = new Piece[8][]
            {
                new Piece[8] { o, o, o, o, kb, o, o, o },
                new Piece[8] { o, o, o, o, o, o, o, o },
                new Piece[8] { o, o, o, o, o, o, o, o },
                new Piece[8] { o, o, o, pw, o, o, o, o },
                new Piece[8] { o, o, o, o, o, o, o, o },
                new Piece[8] { o, o, o, o, o, o, o, o },
                new Piece[8] { o, o, o, o, o, o, o, o },
                new Piece[8] { o, o, o, o, kw, o, o, o }
            };
            Piece[][] actual = game.GetBoard();
            Assert.AreEqual(expected, actual);
        }
开发者ID:ProgramFOX,项目名称:Chess.NET,代码行数:31,代码来源:AtomicChessGameTests.cs

示例3: Start

 void Start()
 {
     piece = gameObject.GetComponent<Piece>();
     piece.moveDirections = directions;
     piece.isRepetitive = false;
     piece.isKing = true;
 }
开发者ID:DanteX95X,项目名称:Chess,代码行数:7,代码来源:King.cs

示例4: BoardPosition

 /// <summary>
 /// Storage class for row and column, does not restric the value of the input,
 /// expects consuming class to validate appropriate row/column value
 /// </summary>
 /// <param name="row"></param>
 /// <param name="column"></param>
 /// <param name="piece"></param>
 public BoardPosition(int row, int column, Piece piece)
 {
     this.Row = row;
     this.Column = column;
     this.Piece = piece;
     this.Piece.SetPosition(this.Row, this.Column);
 }
开发者ID:chadqueen,项目名称:QueensDuel,代码行数:14,代码来源:BoardPosition.cs

示例5: HordeChessGame

 public HordeChessGame() : base()
 {
     WhoseTurn = Player.White;
     Moves = new ReadOnlyCollection<DetailedMove>(new List<DetailedMove>());
     Board = new Piece[8][];
     Piece kb = FenMappings['k'];
     Piece qb = FenMappings['q'];
     Piece rb = FenMappings['r'];
     Piece nb = FenMappings['n'];
     Piece bb = FenMappings['b'];
     Piece pw = FenMappings['P'];
     Piece pb = FenMappings['p'];
     Piece o = null;
     Board = new Piece[8][]
     {
         new[] { rb, nb, bb, qb, kb, bb, nb, rb },
         new[] { pb, pb, pb, pb, pb, pb, pb, pb },
         new[] { o, o, o, o, o, o, o, o },
         new[] { o, pw, pw, o, o, pw, pw, o },
         new[] { pw, pw, pw, pw, pw, pw, pw, pw },
         new[] { pw, pw, pw, pw, pw, pw, pw, pw },
         new[] { pw, pw, pw, pw, pw, pw, pw, pw },
         new[] { pw, pw, pw, pw, pw, pw, pw, pw }
     };
     CanBlackCastleKingSide = CanBlackCastleQueenSide = CastlingCanBeLegal;
     CanWhiteCastleKingSide = CanWhiteCastleQueenSide = false;
 }
开发者ID:ProgramFOX,项目名称:Chess.NET,代码行数:27,代码来源:HordeChessGame.cs

示例6: CreateRandomPieceAtStartPoint

 private void CreateRandomPieceAtStartPoint()
 {
     int randomType = UnityEngine.Random.Range(0, PieceTypes.Count);
     switch (randomType)
     {
         case 0:
             PlayerControlledPiece = Piece.Create<Bar>();
             break;
         case 1:
             PlayerControlledPiece = Piece.Create<InverseL>();
             break;
         case 2:
             PlayerControlledPiece = Piece.Create<L>();
             break;
         case 3:
             PlayerControlledPiece = Piece.Create<S>();
             break;
         case 4:
             PlayerControlledPiece = Piece.Create<Square>();
             break;
         case 5:
             PlayerControlledPiece = Piece.Create<Tri>();
             break;
         case 6:
             PlayerControlledPiece = Piece.Create<Z>();
             break;
     }
 }
开发者ID:AleClo,项目名称:Tetreski,代码行数:28,代码来源:GameManager.cs

示例7: Move

 public Move(Position originalPosition, Position newPosition, Player player, Piece promotion)
 {
     OriginalPosition = originalPosition;
     NewPosition = newPosition;
     Player = player;
     Promotion = promotion;
 }
开发者ID:gunr2171,项目名称:Chess.NET,代码行数:7,代码来源:Move.cs

示例8: addPiece

 public static void addPiece(Piece [] pieces)
 {
     foreach (Piece p in pieces)
     {
         positions.Add(p);
     }
 }
开发者ID:schafer14,项目名称:ChessC,代码行数:7,代码来源:State.cs

示例9: CheckTileHeightDiffFromOutsidePlayerZone

    public bool CheckTileHeightDiffFromOutsidePlayerZone(Piece selectedPiece,int numPlayers)
    {
        if(numPlayers <=2 ){
            if(selectedPiece.tile.posOnBoard == 2 || selectedPiece.tile.posOnBoard == 7)
            {
                diff1 = Math.Abs(selectedPiece.tile.tileHeight - (this.tiles[0].tileHeight));
                return (diff1 < 3);
            }

            else if(selectedPiece.tile.posOnBoard == 1)
            {
                diff1 = Math.Abs(selectedPiece.tile.tileHeight - (this.tiles[1].tileHeight));
                diff2 = Math.Abs(selectedPiece.tile.tileHeight - this.tiles[6].tileHeight);
                diff3 = Math.Abs(selectedPiece.tile.tileHeight - this.tiles[36].tileHeight);
                return (diff1 < 3 && diff2 < 3 && diff3 < 3);
            }
            else if(selectedPiece.tile.posOnBoard == 37){
                diff1 = Math.Abs(selectedPiece.tile.tileHeight - (this.tiles[0].tileHeight));
                return (diff1 < 3);
            }
            else{
                return true;
            }

        }
        return true;
    }
开发者ID:jmoraltu,项目名称:KatoizApp,代码行数:27,代码来源:GameBoard.cs

示例10: DetachPiece

	public void DetachPiece(){
		if (attachedPiece!=null){
			attachedPiece.transform.parent = null;
			attachedPiece = null;
			state = TileState.empty;
		}
	}
开发者ID:spladityapramanta,项目名称:spladityapramanta.github.io,代码行数:7,代码来源:Tile.cs

示例11: startTurn

  public bool startTurn()
  {
    iteration++;
    int count = 0;
    count = Client.getMoveCount(connection);
    moves = new Move[count];
    for(int i = 0; i < count; i++)
    {
      moves[i] = new Move(Client.getMove(connection, i));
    }
    count = Client.getPieceCount(connection);
    pieces = new Piece[count];
    for(int i = 0; i < count; i++)
    {
      pieces[i] = new Piece(Client.getPiece(connection, i));
    }
    count = Client.getPlayerCount(connection);
    players = new Player[count];
    for(int i = 0; i < count; i++)
    {
      players[i] = new Player(Client.getPlayer(connection, i));
    }

    if(!initialized)
    {
      initialized = true;
      init();
    }
    return run();
  }
开发者ID:siggame,项目名称:chess,代码行数:30,代码来源:BaseAI.CS

示例12: Reset

	public void Reset(){
		state = TileState.empty;
		if(attachedPiece!=null){
			attachedPiece.Fall(attachedPiece.transform.position.normalized * 4 + new Vector3(0,8,0));
			attachedPiece=null;
		}
	}
开发者ID:spladityapramanta,项目名称:spladityapramanta.github.io,代码行数:7,代码来源:Tile.cs

示例13: GetPieces

        //returns a list of pieces on the current opening
        public static Pieces GetPieces(int pageNumber)
        {
            var pieces = new Pieces();
            try
            {
                //gets the xelements representing the two pages of the opening (e.g. 1r, 2v)
                XElement root = SurfaceWindow1.xOldFr.Root;
                string verso = "#" + (pageNumber-2).ToString() + "v";
                string recto = "#" + (pageNumber-1).ToString() + "r";
                IEnumerable<XElement> pages =
                    from el in root.Descendants("pb")
                    where ((string)el.Attribute("facs") ==  verso || el.Attribute("facs").Value == recto)
                    select el;
                //adds the pieces on each page to the pieceList
                foreach (XElement page in pages)
                {
                    //var foo = page.Attribute("facs");
                    IEnumerable<XElement> pieceElements =
                    from el in page.Elements("p")
                    select el; //.Attribute("id").Value;

                    foreach (XElement p in pieceElements)
                    {
                        var piece = new Piece(p);
                        pieces.Add(piece.ID,piece);
                    }
                }

            }
            catch (Exception e)
            {
                MessageBox.Show(e.Message);
            }
            return pieces;
        }
开发者ID:straboulsi,项目名称:fauvel,代码行数:36,代码来源:Study.cs

示例14: Board

    public Board(int d)
    {
        PossibleMovesNum = 1;
        needsRefreshModel = false;
        AlphaBetaMaxDepth = Constants.MAXDEPTH;
        pieceMatrix = new List<List<Piece>>();
        CurrentTurn = 0;
        for (int i = 0; i < d; i++)
        {
            List<Piece> temp = new List<Piece>();
            for (int j = 0; j < d; j++)
            {
                Piece tempPiece = new Piece(new Vector2(i, j));
                temp.Add(tempPiece);
            }
            pieceMatrix.Add(temp);
        }

        StartingMoves = new List<Vector2>();
        StartingMoves.Add(new Vector2(1, 1));
        StartingMoves.Add(new Vector2(1, boardSize - 2));
        StartingMoves.Add(new Vector2(boardSize - 2, 1));
        StartingMoves.Add(new Vector2(boardSize - 2, boardSize - 2));
        StartingMoves.Add(new Vector2((boardSize - 1) / 2, (boardSize - 1) / 2));
    }
开发者ID:stuartsoft,项目名称:TinyGo,代码行数:25,代码来源:Board.cs

示例15: AnimateMovement

 private void AnimateMovement(Piece toMove,  float time)
 {
     //animate it
     //Lerp could also be used, but I prefer the MoveTowards approach :)
     toMove.GameObject.transform.position = Vector2.MoveTowards(toMove.GameObject.transform.position,
       screenPositionToAnimate , time * AnimSpeed);
 }
开发者ID:Fyrewell,项目名称:SlidePuzzleUnity,代码行数:7,代码来源:Game.cs


注:本文中的Piece类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。