• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C# ChessColor类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

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



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


示例16: 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(byte[] boardState, ChessColor color)
        {
            int hazardPenalty = 0;
            bool white = color == ChessColor.White;

            hazardPenalty = FEN.GetPieceHazard (boardState, white);
            /*
                hazardPenalty += FEN.PieceNotSafe(boardState, FEN.GetPiecePos(boardState, white, FEN.q), white) ? -400 : 0;
            //hazardPenalty += FEN.PieceNotSafe(boardState, FEN.GetPiecePos(boardState, white, FEN.r), white) ? -200 : 0;
            //hazardPenalty += FEN.PieceNotSafe(boardState, FEN.GetPiecePos(boardState, white, FEN.n), white) ? -150 : 0;
            //hazardPenalty += FEN.PieceNotSafe(boardState, FEN.GetPiecePos(boardState, white, FEN.b), white) ? -155 : 0;
            //hazardPenalty += FEN.PieceNotSafe(boardState, FEN.GetPiecePos(boardState, white, FEN.p), white) ? -40 : 0;*/

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


示例17: AIProfiler

        /// <summary>
        /// AIProfiler keeps the profiling stats for the AI. This object is what's passed
        /// to each AI when they call the Profiler property from IChessAI
        /// </summary>
        /// <param name="myColor">This is the color of the AI being profiled. It's mostly used when outputing the results</param>
        internal AIProfiler(ChessColor myColor)
        {
            NodesPerSecond = -1;
            MinisProfilerTag = -1;
            MaxsProfilerTag = -1;
            AIName = string.Empty;
            AIColor = myColor;
            Depth = 0;

            _numFrameworkMethods = Enum.GetValues(typeof(ProfilerMethodKey)).Length;
            IsEnabled = false;
            MoveDepths = new List<int>();
            MoveTimes = new List<TimeSpan>();
            Turns = new List<int[]>();
            FxTurns = new List<int[]>();
        }
开发者ID:ErichDonGubler,项目名称:uvschess,代码行数:21,代码来源:AIProfiler.cs


示例18: CalculateBoardHP

        /// <summary>
        /// High Number = better board for your color
        /// </summary>
        /// <param name="board"></param>
        /// <param name="colorOfEnemyTeam"></param>
        /// <returns></returns>
        int CalculateBoardHP(ChessBoard board, ChessColor colorOfMyTeam)
        {
            int score = 0;
            for (int x = 0; x < 8; x++)
            {
                for (int y = 0; y < 8; y++)
                {
                    if (colorOfMyTeam == ChessColor.Black && BoardAfterMove[x, y] < ChessPiece.Empty) //if black
                        score += StudentAI.Piece.CalculatePieceValue(BoardAfterMove[x, y]);
                    else if (colorOfMyTeam == ChessColor.White && BoardAfterMove[x, y] > ChessPiece.Empty) //if white
                        score += StudentAI.Piece.CalculatePieceValue(BoardAfterMove[x, y]);
                }
            }

            return score;
        }
开发者ID:phasze,项目名称:chess,代码行数:22,代码来源:Hueristic.cs


示例19: GetGameMove

        /// <summary>
        /// Converts a state based move to a ChessBoard move
        /// </summary>
        /// <param name="stateMove">The move the convert</param>
        /// <param name="playerColor">The color of hte player</param>
        /// <returns>The move corrected to work with ChessBoard</returns>
        public static ChessMove GetGameMove(ChessMove stateMove, ChessColor playerColor)
        {
            if (stateMove == null)
                return null;

            ChessMove gameMove = stateMove.Clone();

            if (playerColor == ChessColor.White)
            {
                gameMove.From.X = Columns - gameMove.From.X - 1;
                gameMove.From.Y = Rows - gameMove.From.Y - 1;
                gameMove.To.X = Columns - gameMove.To.X - 1;
                gameMove.To.Y = Rows - gameMove.To.Y - 1;
            }

            return gameMove;
        }
开发者ID:joneda,项目名称:CS-4470-Chess,代码行数:23,代码来源:SimpleState.cs


示例20: getmovesofcolor

 /// <summary>
 /// gets a list of available moves for a color
 /// </summary>
 public static List<ChessMove> getmovesofcolor(StudentAI ai, ChessColor color, ChessBoard board)
 {
     List<ChessMove> colormoves = new List<ChessMove>();
     for (int y = 0; y < 8; y++)
     {
         for (int x = 0; x < 8; x++)
         {
             if (color == ChessColor.Black)
             {
                 switch (board[x, y])
                 {
                     case ChessPiece.BlackPawn:
                     case ChessPiece.BlackKnight:
                     case ChessPiece.BlackBishop:
                     case ChessPiece.BlackQueen:
                     case ChessPiece.BlackRook:
                     case ChessPiece.BlackKing:
                         colormoves.AddRange(getmovesofpiece(ai, color, board, new ChessLocation(x, y)));
                         break;
                     default:
                         break;
                 }
             }
             if (color == ChessColor.White)
             {
                 switch (board[x, y])
                 {
                     case ChessPiece.WhitePawn:
                     case ChessPiece.WhiteKnight:
                     case ChessPiece.WhiteBishop:
                     case ChessPiece.WhiteQueen:
                     case ChessPiece.WhiteRook:
                     case ChessPiece.WhiteKing:
                         colormoves.AddRange(getmovesofpiece(ai, color, board, new ChessLocation(x, y)));
                         break;
                     default:
                         break;
                 }
             }
         }
     }
     return colormoves;
 }
开发者ID:phasze,项目名称:chess,代码行数:46,代码来源:PieceMoves.cs



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


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C# ChessGame类代码示例发布时间:2022-05-24
下一篇:
C# ChemicalFormula类代码示例发布时间:2022-05-24
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap