private void SearchFirsWord(GameSession gameSession, TypeMove typeVertical) { var typeMove = typeVertical; var steps = stepsForMoveVertical; while (VisibleArea == voidSpace) { steps--; switch (typeMove) { case TypeMove.Down: VisibleArea = gameSession.Move(typeVertical); if (steps <= 1) { typeMove = TypeMove.Right; steps = stepsForMoveHorizontal; } break; case TypeMove.Right: VisibleArea = gameSession.Move(TypeMove.Right); if (steps <= 1) { typeMove = typeVertical; steps = stepsForMoveVertical; } break; } } }
private void OnEventMouseMove(MouseEventArgs e) { if (!(Mouse.Captured is CanBeMove)) { return; } Point delta = GetDeltaMove(); if (delta.IsClear()) { return; } SumMove = SumMove.Addition(delta); if (this.IsMouseCaptured) { ViewModel.CommandPartMoveAllNode.ExecuteWithSubscribe(delta); Move = TypeMove.MoveAll; } else { ViewModel.CommandPartMoveAllSelectedNode.ExecuteWithSubscribe(delta); Move = TypeMove.MoveSelected; } }
public override List <Position> GetAListOfMoves(ChessBoard chessBoard, TypeMove typeMove) { List <Position> listOfMoves = new List <Position>(); return(listOfMoves); }
private void SearchWordOnOneTurn(GameSession gameSession, TypeMove typeVertical) { while (VisibleArea == voidSpace) { VisibleArea = gameSession.Move(typeVertical); GlobalIterationIndex++; } }
private void SearchWordOnTor(GameSession gameSession, TypeMove typeVertical) { for (; GlobalIterationIndex < LengthOneTurn - 7; GlobalIterationIndex++) { if (VisibleArea != voidSpace) { break; } VisibleArea = gameSession.Move(typeVertical); } }
private void MoveInDirection(GameSession gameSession, int countMove, TypeMove typeMove) { if (typeMove == TypeMove.Down) { GlobalIterationIndex += countMove; } if (typeMove == TypeMove.Up) { GlobalIterationIndex -= countMove; } for (int i = 0; i < countMove; i++) { VisibleArea = gameSession.Move(typeMove); } }
private void OnEventMouseLeftUp(MouseButtonEventArgs e) { if (Move == TypeMove.None) { return; } if (Move == TypeMove.MoveAll) { this.ViewModel.CommandFullMoveAllNode.Execute(SumMove); } else if (Move == TypeMove.MoveSelected) { this.ViewModel.CommandFullMoveAllSelectedNode.Execute(SumMove); } Move = TypeMove.None; SumMove = new Point(); }
public string Move(TypeMove typeMove) { var partToroid = ""; try { var resp = NetworkActions.POST(Server + "/task/move/" + typeMove.ToString(), "", Auth_key); var sr = new StreamReader(resp.GetResponseStream()); var content = sr.ReadToEnd(); if (resp.StatusCode == HttpStatusCode.OK) { partToroid = content; } } catch (Exception ex) { Console.WriteLine("ERROR: " + ex.Message); } return(partToroid); }
public List <Position> GetAListOfAllMoves(ChessColor chessColor, TypeMove typeMove) { List <Position> allMoves = new List <Position>(); if (chessColor == ChessColor.White) { foreach (Piece piece in WhitePieces) { allMoves.AddRange(piece.GetAListOfMoves(this, typeMove)); } } else { foreach (Piece piece in BlackPieces) { allMoves.AddRange(piece.GetAListOfMoves(this, typeMove)); } } allMoves = allMoves.Distinct().ToList(); return(allMoves); }
private bool checkMove(Position position, ChessBoard chessBoard, TypeMove typeMove) { if (position.V > 0 && position.V < 9 && position.H > 0 && position.H < 9) { if (chessBoard.Board[position.V, position.H].piece == null || chessBoard.Board[position.V, position.H].piece.color != this.color) { if (typeMove == TypeMove.PossibleAttack) { return(true); } ChessBoard tmpChessBoard = (ChessBoard)chessBoard.Clone(); tmpChessBoard.Move(this.position, position); if (tmpChessBoard.CheckKingAttacked(this.color)) { return(true); } } } return(false); }
private string RecognizeLetter(GameSession gameSession, TypeMove typeMove) { var letter = ""; var visiblePartLetter1 = VisibleArea.Replace("\r\n", " ").Split() .Select(line => line.Substring(4)) .ToArray(); MoveInDirection(gameSession, 2, typeMove); var visiblePartLetter2 = VisibleArea.Replace("\r\n", " ").Split() .Select(line => line.Substring(4)); visiblePartLetter2 = typeMove == TypeMove.Down ? visiblePartLetter2.Skip(3).ToArray(): visiblePartLetter2.Take(2).ToArray(); var visibleLetter = typeMove == TypeMove.Down ? visiblePartLetter1.Concat(visiblePartLetter2).ToArray(): visiblePartLetter2.Concat(visiblePartLetter1).ToArray(); letter += visibleLetter[0]; for (int i = 1; i < visibleLetter.Length; i++) { letter += ' ' + visibleLetter[i]; } return(letter); }
public abstract List <Position> GetAListOfMoves(ChessBoard chessBoard, TypeMove typeMove);
public override List <Position> GetAListOfMoves(ChessBoard chessBoard, TypeMove typeMove) { List <Position> listOfMoves = new List <Position>(); //UP bool up = checkMove(new Position { V = this.position.V - 1, H = this.position.H }, chessBoard, typeMove); for (int i = this.position.V - 1, j = this.position.H; up && i > 0; i--) { if (chessBoard.Board[i, j].piece == null) { listOfMoves.Add(new Position { V = i, H = j }); } else { if (chessBoard.Board[i, j].piece.color != this.color) { listOfMoves.Add(new Position { V = i, H = j }); } break; } } //DOWN bool down = checkMove(new Position { V = this.position.V + 1, H = this.position.H }, chessBoard, typeMove); for (int i = this.position.V + 1, j = this.position.H; down && i < 9; i++) { if (chessBoard.Board[i, j].piece == null) { listOfMoves.Add(new Position { V = i, H = j }); } else { if (chessBoard.Board[i, j].piece.color != this.color) { listOfMoves.Add(new Position { V = i, H = j }); } break; } } //LEFT bool left = checkMove(new Position { V = this.position.V, H = this.position.H - 1 }, chessBoard, typeMove); for (int i = this.position.V, j = this.position.H - 1; left && j > 0; j--) { if (chessBoard.Board[i, j].piece == null) { listOfMoves.Add(new Position { V = i, H = j }); } else { if (chessBoard.Board[i, j].piece.color != this.color) { listOfMoves.Add(new Position { V = i, H = j }); } break; } } //RIGHT bool right = checkMove(new Position { V = this.position.V, H = this.position.H + 1 }, chessBoard, typeMove); for (int i = this.position.V, j = this.position.H + 1; right && j < 9; j++) { if (chessBoard.Board[i, j].piece == null) { listOfMoves.Add(new Position { V = i, H = j }); } else { if (chessBoard.Board[i, j].piece.color != this.color) { listOfMoves.Add(new Position { V = i, H = j }); } break; } } return(listOfMoves); }
public override List <Position> GetAListOfMoves(ChessBoard chessBoard, TypeMove typeMove) { List <Position> listOfMoves = new List <Position>(); //UP if (checkMove(new Position { V = this.position.V - 1, H = this.position.H }, chessBoard, typeMove)) { listOfMoves.Add(new Position { V = this.position.V - 1, H = this.position.H }); } //DOWN if (checkMove(new Position { V = this.position.V + 1, H = this.position.H }, chessBoard, typeMove)) { listOfMoves.Add(new Position { V = this.position.V + 1, H = this.position.H }); } //LEFT if (checkMove(new Position { V = this.position.V, H = this.position.H - 1 }, chessBoard, typeMove)) { listOfMoves.Add(new Position { V = this.position.V, H = this.position.H - 1 }); } //RIGHT if (checkMove(new Position { V = this.position.V, H = this.position.H + 1 }, chessBoard, typeMove)) { listOfMoves.Add(new Position { V = this.position.V, H = this.position.H + 1 }); } //UL if (checkMove(new Position { V = this.position.V - 1, H = this.position.H - 1 }, chessBoard, typeMove)) { listOfMoves.Add(new Position { V = this.position.V - 1, H = this.position.H - 1 }); } //UR if (checkMove(new Position { V = this.position.V - 1, H = this.position.H + 1 }, chessBoard, typeMove)) { listOfMoves.Add(new Position { V = this.position.V - 1, H = this.position.H + 1 }); } //DL if (checkMove(new Position { V = this.position.V + 1, H = this.position.H - 1 }, chessBoard, typeMove)) { listOfMoves.Add(new Position { V = this.position.V + 1, H = this.position.H - 1 }); } //DR if (checkMove(new Position { V = this.position.V + 1, H = this.position.H + 1 }, chessBoard, typeMove)) { listOfMoves.Add(new Position { V = this.position.V + 1, H = this.position.H + 1 }); } /* * if (castling) * { * //LEFT CASTLING * List<Position> leftCastlingList = new List<Position>(); * leftCastlingList.Add(new Position { V = this.position.V, H = this.position.H - 1 }); * leftCastlingList.Add(new Position { V = this.position.V, H = this.position.H - 2 }); * * if ( * chessBoard.Board[this.position.V, this.position.H - 1].piece == null * && * chessBoard.Board[this.position.V, this.position.H - 2].piece == null * && * chessBoard.Board[this.position.V, this.position.H - 3].piece == null * && * chessBoard.Board[this.position.V, this.position.H - 4].piece is Rook * && * ((Rook)chessBoard.Board[this.position.V, this.position.H - 4].piece).castling * && * chessBoard.CheckCellsIsAttacked(leftCastlingList, this.color) * ) * { * listOfMoves.Add(new Position { V = this.position.V, H = this.position.H - 2 }); * } * //RIGHT CASTLING * List<Position> rightCastlingList = new List<Position>(); * leftCastlingList.Add(new Position { V = this.position.V, H = this.position.H + 1 }); * leftCastlingList.Add(new Position { V = this.position.V, H = this.position.H + 2 }); * if ( * chessBoard.Board[this.position.V, this.position.H + 1].piece == null * && * chessBoard.Board[this.position.V, this.position.H + 2].piece == null * && * chessBoard.Board[this.position.V, this.position.H + 3].piece is Rook * && * ((Rook)chessBoard.Board[this.position.V, this.position.H + 3].piece).castling * && * chessBoard.CheckCellsIsAttacked(rightCastlingList, this.color) * ) * { * listOfMoves.Add(new Position { V = this.position.V, H = this.position.H + 2 }); * } * } */ return(listOfMoves); }
public override List <Position> GetAListOfMoves(ChessBoard chessBoard, TypeMove typeMove) { List <Position> listOfMoves = new List <Position>(); int side; if (this.color == ChessColor.White) { side = -1; } else { side = +1; } if (typeMove == TypeMove.Move) { ChessBoard tmpChessBoard = (ChessBoard)chessBoard.Clone(); tmpChessBoard.Move(this.position, new Position { V = this.position.V + (1 * side), H = this.position.H }); //UP if (chessBoard.Board[this.position.V + (1 * side), this.position.H].piece == null && tmpChessBoard.CheckKingAttacked(this.color) ) { listOfMoves.Add(new Position { V = this.position.V + (1 * side), H = this.position.H }); //UP2 if (first && chessBoard.Board[this.position.V + (2 * side), this.position.H].piece == null) { listOfMoves.Add(new Position { V = this.position.V + (2 * side), H = this.position.H }); } } //L if (this.position.H - 1 > 0) { if ( ( chessBoard.Board[this.position.V + (1 * side), this.position.H - 1].piece != null && chessBoard.Board[this.position.V + (1 * side), this.position.H - 1].piece.color != this.color ) || ( chessBoard.Board[this.position.V, this.position.H - 1].piece is Pawn && ((Pawn)chessBoard.Board[this.position.V, this.position.H - 1].piece).takeOnTheAisle && chessBoard.Board[this.position.V, this.position.H - 1].piece.color != this.color ) ) { tmpChessBoard = (ChessBoard)chessBoard.Clone(); tmpChessBoard.Move(this.position, new Position { V = this.position.V + (1 * side), H = this.position.H - 1 }); if (tmpChessBoard.CheckKingAttacked(this.color)) { listOfMoves.Add(new Position { V = this.position.V + (1 * side), H = this.position.H - 1 }); } } } //R if (this.position.H + 1 < 9) { if ( ( chessBoard.Board[this.position.V + (1 * side), this.position.H + 1].piece != null && chessBoard.Board[this.position.V + (1 * side), this.position.H + 1].piece.color != this.color ) || ( chessBoard.Board[this.position.V, this.position.H + 1].piece is Pawn && ((Pawn)chessBoard.Board[this.position.V, this.position.H + 1].piece).takeOnTheAisle && chessBoard.Board[this.position.V, this.position.H + 1].piece.color != this.color ) ) { tmpChessBoard = (ChessBoard)chessBoard.Clone(); tmpChessBoard.Move(this.position, new Position { V = this.position.V + (1 * side), H = this.position.H + 1 }); if (tmpChessBoard.CheckKingAttacked(this.color)) { listOfMoves.Add(new Position { V = this.position.V + (1 * side), H = this.position.H + 1 }); } } } } else { //L if (this.position.H - 1 > 0) { listOfMoves.Add(new Position { V = this.position.V + (1 * side), H = this.position.H - 1 }); } //R if (this.position.H + 1 < 9) { listOfMoves.Add(new Position { V = this.position.V + (1 * side), H = this.position.H + 1 }); } } return(listOfMoves); }
public override List <Position> GetAListOfMoves(ChessBoard chessBoard, TypeMove typeMove) { List <Position> listOfMoves = new List <Position>(); //UL bool ul = checkMove(new Position { V = this.position.V - 1, H = this.position.H - 1 }, chessBoard, typeMove); for (int i = this.position.V - 1, j = this.position.H - 1; ul && i > 0 && j > 0; i--, j--) { if (chessBoard.Board[i, j].piece == null) { listOfMoves.Add(new Position { V = i, H = j }); } else { if (chessBoard.Board[i, j].piece.color != this.color) { listOfMoves.Add(new Position { V = i, H = j }); } break; } } //UR bool ur = checkMove(new Position { V = this.position.V - 1, H = this.position.H + 1 }, chessBoard, typeMove); for (int i = this.position.V - 1, j = this.position.H + 1; ur && i > 0 && j < 9; i--, j++) { if (chessBoard.Board[i, j].piece == null) { listOfMoves.Add(new Position { V = i, H = j }); } else { if (chessBoard.Board[i, j].piece.color != this.color) { listOfMoves.Add(new Position { V = i, H = j }); } break; } } //DL bool dl = checkMove(new Position { V = this.position.V + 1, H = this.position.H - 1 }, chessBoard, typeMove); for (int i = this.position.V + 1, j = this.position.H - 1; dl && i < 9 && j > 0; i++, j--) { if (chessBoard.Board[i, j].piece == null) { listOfMoves.Add(new Position { V = i, H = j }); } else { if (chessBoard.Board[i, j].piece.color != this.color) { listOfMoves.Add(new Position { V = i, H = j }); } break; } } //DR bool dr = checkMove(new Position { V = this.position.V + 1, H = this.position.H + 1 }, chessBoard, typeMove); for (int i = this.position.V + 1, j = this.position.H + 1; dr && i < 9 && j < 9; i++, j++) { if (chessBoard.Board[i, j].piece == null) { listOfMoves.Add(new Position { V = i, H = j }); } else { if (chessBoard.Board[i, j].piece.color != this.color) { listOfMoves.Add(new Position { V = i, H = j }); } break; } } return(listOfMoves); }