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


C# ChessColor类代码示例

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


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

示例1: miniMax

        /// <summary>
        /// Purpose: To perform the minimax algorithm to determine chess move
        /// </summary>
        /// <param name="boardState"></param>
        /// <param name="color"></param>
        /// <returns>char[] board to represent the move</returns>
        /// 

        public static char[] miniMax(char[] SRFen, ChessColor color)
        {
            TimeSpan maxTime = TimeSpan.FromMilliseconds(5500);
            Char[] initialBoard = (char[])SRFen.Clone();
            bool white;
            int alpha = -10000;
            int beta = 10000;
            int cutoff = 4;
            if (color == ChessColor.White) white = true;
            else white = false;
            int depth = 0;
            Stopwatch timer = new Stopwatch();
            timer.Start();
            int h;
            h = minValue(ref SRFen, depth + 1, white, alpha, beta, cutoff, ref timer);
            if (h == -5000) 
                return SRFen;
            char[] bestSoFar = (char[])SRFen.Clone();
            while (timer.Elapsed < maxTime && h != -9999)
            { 
                cutoff += 2;
                char[] temp = (char[])initialBoard.Clone();
                h = minValue(ref temp, depth + 1, white, alpha, beta, cutoff, bestSoFar, ref timer);
                if (h != -9999) bestSoFar = (char[])temp.Clone();
                if (h == -5000) 
                    return bestSoFar;
            }
            //this.Log("cutoff" + cutoff);
            return bestSoFar;
        }
开发者ID:schuylerdaddy,项目名称:CS4470_Chess,代码行数:38,代码来源:Minimax.cs

示例2: GetSimpleState

        /// <summary>
        /// Takes a board and color, and returns a simplified state where friend pieces are represented
        /// by positive integers and always start on the same side of the board (0,0). Foe pieces are 
        /// represented as negative values
        /// </summary>
        /// <param name="board">The board to convert</param>
        /// <param name="color">The color of the player (friend)</param>
        /// <returns>A simplified representation of the current board</returns>
        public static int[,] GetSimpleState(ChessBoard board, ChessColor color)
        {
            int[,] state = new int[Columns, Rows];

            for (int col = 0; col < Columns; col++)
            {
                for (int row = 0; row < Rows; row++)
                {
                    int stateRow = row;
                    int stateCol = col;
                    if (color == ChessColor.White)
                    {
                        stateRow = Rows - row - 1;
                        stateCol = Columns - col - 1;
                    }

                    ChessPiece piece = board[col, row];

                    int multiplier = 1;
                    if (color == ChessColor.White && piece < ChessPiece.Empty
                        || color == ChessColor.Black && piece > ChessPiece.Empty)
                        multiplier = -1;

                    state[stateCol, stateRow] = multiplier * GamePieceToStatePiece[piece];
                }
            }
            return state;
        }
开发者ID:joneda,项目名称:CS-4470-Chess,代码行数:36,代码来源:SimpleState.cs

示例3: GetHeuristicValue

 /// <summary>
 /// Purpose: To calculate a heuristic value for the given board state
 /// </summary>
 /// <param name="boardState"></param>
 /// <param name="color"></param>
 /// <returns>integer representing the heuristic</returns>
 public static int GetHeuristicValue(byte[] boardState, ChessColor color)
 {
     bool white = color == ChessColor.White;
     int pH = GetPieceValueHeuristic(boardState, color);
     int pS = FEN.GetPieceHazard(boardState, white);
     return pH + pS;
 }
开发者ID:schuylerdaddy,项目名称:CS4470_Chess,代码行数:13,代码来源:Bytes_Heuristic.cs

示例4: Player

 public Player(string name, ChessColor color)
 {
     // TODO: Validate name lenght
     this.Name = name;
     this.Color = color;
     this.figures = new List<IFigure>();
 }
开发者ID:King-Survival-3,项目名称:HQC-Teamwork-2015,代码行数:7,代码来源:Player.cs

示例5: GetPieceValueHeuristic

        /// <summary>
        /// Purpose: To calculate a heuristic based purely off piece value
        /// </summary>
        /// <param name="boardState"></param>
        /// <param name="color"></param>
        /// <returns></returns>
        private static int GetPieceValueHeuristic(byte[] boardState, ChessColor color)
        {
            int whiteValue = 0;
            int blackValue = 0;
            for (int i = 0; i < boardState.Length; i++)
            {
                if (boardState[i] != FEN._)
                {
                    if (boardState[i].IsUpper())
                        whiteValue += (pieceValues[boardState[i]] + GetPiecePositionValue(boardState[i], i));
                    else
                        blackValue += (pieceValues[boardState[i]] + GetPiecePositionValue(boardState[i], i));
                }
            }

            //Log("WV -" + whiteValue.ToString());
            //Log("BV -" + blackValue.ToString());

            if (color == ChessColor.White)
            {
                if (whiteValue - 20000 < 1500)
                {
                    lateGame = true;
                }
                return whiteValue - blackValue;
            }
            else
            {
                if (blackValue - 20000 < 1500)
                {
                    lateGame = true;
                }
                return blackValue - whiteValue;
            }
        }
开发者ID:schuylerdaddy,项目名称:CS4470_Chess,代码行数:41,代码来源:Bytes_Heuristic.cs

示例6: GetType

 public static Piece GetType(string s, ChessColor color)
 {
     Piece p;
     switch (s)
     {
         case "Bishop":
             p = new Bishop(color);
             break;
         case "King":
             p = new King(color);
             break;
         case "Knight":
             p = new Knight(color);
             break;
         case "Pawn":
             p = new Pawn(color);
             break;
         case "Queen":
             p = new Queen(color);
             break;
         case "Rook":
             p = new Rook(color);
             break;
         default:
             throw new Exception("Piece unknown : " + s);
     }
     return p;
 }
开发者ID:Paraintom,项目名称:MikMak,代码行数:28,代码来源:PieceFactory.cs

示例7: ChessSquare

 public ChessSquare(int y, int x, ChessColor color)
 {
     Loc = new Location();
     Loc.Y = y;
     Loc.X = x;
     Color = color;
 }
开发者ID:Comingdonut,项目名称:Chess,代码行数:7,代码来源:ChessSquare.cs

示例8: Square

 /// <summary>
 /// The constructor.
 /// </summary>
 /// <param name="board">The board in which the square is located.</param>
 /// <param name="location">The location of the square.</param>
 /// <param name="color">The color of the square.</param>
 /// <param name="piece">The Chess piece that is on the square.</param>
 public Square(ChessBoard board, Location location, ChessColor color, ChessPiece piece = null)
 {
     this.Board = board;
     this.Location = location;
     this.Color = color;
     this.Piece = piece;
 }
开发者ID:mygibbs,项目名称:Chess,代码行数:14,代码来源:Square.cs

示例9: GenerateMoves

 public void GenerateMoves(ChessBoard board, ChessColor color)
 {
     Moves = new List<ChessMove>();
     for (int y = 0; y < ChessBoard.NumberOfRows; y++)
     {
         for (int x = 0; x < ChessBoard.NumberOfColumns; x++)
         {
             if (color == ChessColor.White) // if player is white
             {
                 if (board[x, y] > ChessPiece.Empty)
                 {
                     switch (board[x, y])
                     {
                         case ChessPiece.WhiteBishop:
                             BishopMoves(board, x, y, color);
                             break;
                         case ChessPiece.WhiteQueen:
                             QueenMoves(board, x, y, color);
                             break;
                         case ChessPiece.WhiteKing:
                             break;
                         case ChessPiece.WhiteKnight:
                             KnightMoves(board, x, y, color);
                             break;
                         case ChessPiece.WhitePawn:
                             PawnMoves(board, x, y, color);
                             break;
                         case ChessPiece.WhiteRook:
                             RookMoves(board, x, y, color);
                             break;
                     }
                 }
             }
             else if ( color == ChessColor.Black)
             {
                 switch (board[x, y])
                 {
                     case ChessPiece.BlackBishop:
                         BishopMoves(board, x, y, color);
                         break;
                     case ChessPiece.BlackQueen:
                         QueenMoves(board, x, y, color);
                         break;
                     case ChessPiece.BlackKing:
                         break;
                     case ChessPiece.BlackKnight:
                         KnightMoves(board, x, y, color);
                         break;
                     case ChessPiece.BlackPawn:
                         PawnMoves(board, x, y, color);
                         break;
                     case ChessPiece.BlackRook:
                         RookMoves(board, x, y, color);
                         break;
                 }
             }
         }
     }
 }
开发者ID:CoryBartholomew,项目名称:Chess,代码行数:59,代码来源:MoveGenerator.cs

示例10: Piece

        public Piece( ChessColor color )
        {
            Rules = new Collection<Rule>();

            Color = color;

            InitializeRules();
        }
开发者ID:antdimot,项目名称:chess-movement-validator,代码行数:8,代码来源:Piece.cs

示例11: Hueristic

 /// <summary>
 /// this will define BoardAfterMove, TheMove, and HValue based on move
 /// </summary>
 /// <param name="board"></param>
 /// <param name="move"></param>
 /// <param name="colorofEnemy"></param>
 public Hueristic(ChessBoard board, ChessMove move, ChessColor colorofEnemy)
 {
     BoardBeforeMove = board.Clone();
     BoardAfterMove = board.Clone();
     BoardAfterMove.MakeMove(move);
     TheMove = move;
     //HValue = CalculateHueristicBasic(board, colorofEnemy);
     HValue = CalculateHueristicAdvanced(colorofEnemy);
 }
开发者ID:phasze,项目名称:chess,代码行数:15,代码来源:Hueristic.cs

示例12: CheckOtherFigureIfValid

        private bool CheckOtherFigureIfValid(IBoard board, Position to, ChessColor color)
        {
            var otherFigure = board.GetFigureAtPosition(to);
            if (otherFigure != null && otherFigure.Color == color)
            {
                return false;
            }

            return true;
        }
开发者ID:georgimanov,项目名称:Chess,代码行数:10,代码来源:NormalKingMovement.cs

示例13: PieceSafety

        /// <summary>
        /// Purpose: Lower the Heuristic value if our queen is put in danger
        /// </summary>
        /// <param name="boardState"></param>
        /// <param name="color"></param>
        /// <returns></returns>
        private static int PieceSafety(char[] boardState, ChessColor color)
        {
            int hazardPenalty = 0;
            bool white = color == ChessColor.White;
            hazardPenalty += FENExtensions.PieceNotSafe(boardState, FENExtensions.GetPiecePos(boardState, white, 'q'), white) ? -400 : 0;
            hazardPenalty += FENExtensions.PieceNotSafe(boardState, FENExtensions.GetPiecePos(boardState, white, 'r'), white) ? -200 : 0;
            hazardPenalty += FENExtensions.PieceNotSafe(boardState, FENExtensions.GetPiecePos(boardState, white, 'n'), white) ? -150 : 0;
            hazardPenalty += FENExtensions.PieceNotSafe(boardState, FENExtensions.GetPiecePos(boardState, white, 'b'), white) ? -155 : 0;
            hazardPenalty += FENExtensions.PieceNotSafe(boardState, FENExtensions.GetPiecePos(boardState, white, 'p'), white) ? -40 : 0;

            return hazardPenalty;
        }
开发者ID:schuylerdaddy,项目名称:CS4470_Chess,代码行数:18,代码来源:Heuristic.cs

示例14: Node

 public Node(ChessColor c, ChessMove m, Node p)
 {
     color = c;
     move = m;
     parent = p;
     if (parent == null)
     {
         depth = 0;
     }
     else
     {
         depth = parent.depth + 1;
     }
 }
开发者ID:tennisgent,项目名称:Chess,代码行数:14,代码来源:Node.cs

示例15: GameGump

		public GameGump( Mobile m, ChessGame game, ChessColor color, string message, bool move, bool moving ): base( 60, 25 )
		{
			m.CloseGump( typeof( GameGump ) );

			m_Game = game;
			m_Message = message;
			m_Color = color;
			m_Move = move;
			m_Moving = moving;

			if ( move && ! moving )
				m_Game.SendMoveTarget( m );

			MakeGump();
		}
开发者ID:greeduomacro,项目名称:UO-Forever,代码行数:15,代码来源:GameGump.cs


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