static public WorthMovement MovementInfo(ChessBoard chessBoard) { chessBoard.checkMate = chessBoard.CheckMate(chessBoard); List <WorthMovement> list = new List <WorthMovement>(); WorthMovement movement; foreach (Button item in chessBoard.cells) { WorthMovement move = new WorthMovement(); move.value = -9999; if (item.ForeColor == Color.Black && item.Text != "") { move.Source = item.Location; ChessBoard.ResetBoderColor(chessBoard); if (chessBoard.checkMate) { chessBoard.showCheckMate(chessBoard.assassin, chessBoard.king); } ChessBoard.ShowLegalMovement(item, chessBoard); foreach (Button item2 in chessBoard.cells) //tìm nước đi ngon của quân cờ. { if (item2.FlatAppearance.BorderColor == Color.Blue) { double value = ValuablePosition(item2.Location.X / chessBoard.cells[0, 0].Size.Width, item2.Location.Y / chessBoard.cells[0, 0].Size.Height) + WorthChessman(item2.Text) + hazii(item, item2, chessBoard); if (move.value < value) { move.value = value; move.Destination = item2.Location; } } } ChessBoard.ResetBoderColor(chessBoard); if (move.value != -9999) { list.Add(move); } } } if (list.Count == 0) { MessageBox.Show("you win"); } movement = list[0]; for (int i = 1; i < list.Count; i++) { if (list[i].value > movement.value) { movement = list[i]; } } return(movement); }
static public WorthMovement MovementInfo(ChessBoard chessBoard) { chessBoard.checkMate = chessBoard.CheckMate(chessBoard); List <WorthMovement> list = new List <WorthMovement>(); foreach (Button item in chessBoard.cells) { WorthMovement move = new WorthMovement(); move.value = -99999; if (item.ForeColor == Color.Black && item.Text != "") { move.Source = item.Location; ChessBoard.ResetBoderColor(chessBoard); if (chessBoard.checkMate) { chessBoard.showCheckMate(chessBoard.assassin, chessBoard.king); } ChessBoard.ShowLegalMovement(item, chessBoard); foreach (Button item2 in chessBoard.cells) //tìm nước đi ngon của quân cờ. { if (item2.FlatAppearance.BorderColor == Color.Blue) { double value = ValuablePosition(item2, chessBoard, item, item.ForeColor) + WorthChessman2(item2.Text, item) + hazii(item, item2, chessBoard); //if (move.value < value) //{ move.value = value; move.Destination = item2.Location; //} if (move.value != -99999) { list.Add(move); } } } ChessBoard.ResetBoderColor(chessBoard); } } if (list.Count == 0) { //MessageBox.Show("you win"); new EndGame(chessBoard).ShowDialog(); return(new WorthMovement()); } WorthMovement movement, movement2; movement = movement2 = list[0]; for (int i = 1; i < list.Count; i++) { if (list[i].value > movement.value) { movement2 = movement; movement = list[i]; } } if (movement.value - movement2.value < 5) { Random rd = new Random(); int x = rd.Next(1, 3); if (x == 1) { return(movement2); } else { return(movement); } } else { return(movement); } }