public bool CheckDirections(Piece piecetocheck) { piecetocheck.Jumps.Clear(); piecetocheck.Moves.Clear(); if (piecetocheck.Color == 'R' || piecetocheck.Type == 'K') { foreach (int[] jump in JumpDirections) { try { if (piecetocheck.Compare(GameBoard[jump[0] + piecetocheck.Row, jump[1] + piecetocheck.ColInt], piecetocheck)) { if (GameBoard[2 * jump[0] + piecetocheck.Row, 2 * jump[1] + piecetocheck.ColInt] == null) { GameBoard[piecetocheck.Row, piecetocheck.ColInt].Jumps.Add (new int[] { 2 * jump[0] + piecetocheck.Row, 2 * jump[1] + piecetocheck.ColInt }); return(true); } } } catch (IndexOutOfRangeException) { } try { if (GameBoard[jump[0] + piecetocheck.Row, jump[1] + piecetocheck.ColInt] == null) { GameBoard[piecetocheck.Row, piecetocheck.ColInt].Moves.Add (new int[] { jump[0] + piecetocheck.Row, jump[1] + piecetocheck.ColInt }); } } catch (IndexOutOfRangeException) { } } } if (piecetocheck.Color == 'B' || piecetocheck.Type == 'K') { foreach (int[] jump in JumpDirections) { try { if (piecetocheck.Compare(GameBoard[-1 * jump[0] + piecetocheck.Row, jump[1] + piecetocheck.ColInt], piecetocheck)) { if (GameBoard[-2 * jump[0] + piecetocheck.Row, 2 * jump[1] + piecetocheck.ColInt] == null) { GameBoard[piecetocheck.Row, piecetocheck.ColInt].Jumps.Add (new int[] { -2 * jump[0] + piecetocheck.Row, 2 * jump[1] + piecetocheck.ColInt }); return(true); } } } catch (IndexOutOfRangeException) { } try { if (GameBoard[-1 * jump[0] + piecetocheck.Row, jump[1] + piecetocheck.ColInt] == null) { GameBoard[piecetocheck.Row, piecetocheck.ColInt].Moves.Add (new int[] { -1 * jump[0] + piecetocheck.Row, jump[1] + piecetocheck.ColInt }); } } catch (IndexOutOfRangeException) { } } } return(false); }