public static void SLeftCheck(int x, int y, ReversiCell.ReversiCellStates states) { if (states == ReversiCell.ReversiCellStates.White) { if (x > 0) { if (reversiCells[x - 1, y].ReversiCellState == ReversiCell.ReversiCellStates.Black) { LturnOverList.Add(reversiCells[x - 1, y]); SLeftCheck(x - 1, y, states); } else if (reversiCells[x - 1, y].ReversiCellState == ReversiCell.ReversiCellStates.None) { LturnOverList.Clear(); } else { foreach (var cell in LturnOverList) { cell.ReversiCellState = ReversiCell.ReversiCellStates.White; cell.m_anim.Play("WhiteAnimation"); } return; } } } else if (states == ReversiCell.ReversiCellStates.Black) { if (x > 0) { if (reversiCells[x - 1, y].ReversiCellState == ReversiCell.ReversiCellStates.White) { LturnOverList.Add(reversiCells[x - 1, y]); SLeftCheck(x - 1, y, states); } else if (reversiCells[x - 1, y].ReversiCellState == ReversiCell.ReversiCellStates.None) { LturnOverList.Clear(); } else { foreach (var cell in LturnOverList) { cell.ReversiCellState = ReversiCell.ReversiCellStates.Black; cell.m_anim.Play("BlackAnimation"); } return; } } } }
public static void SRightBottomCheck(int x, int y, ReversiCell.ReversiCellStates states) { if (x < m_columns - 1 && y > 0) { if (states == ReversiCell.ReversiCellStates.White) { if (reversiCells[x + 1, y - 1].ReversiCellState == ReversiCell.ReversiCellStates.Black) { RBturnOverList.Add(reversiCells[x + 1, y - 1]); SRightBottomCheck(x + 1, y - 1, states); } else if (reversiCells[x + 1, y - 1].ReversiCellState == ReversiCell.ReversiCellStates.None) { RBturnOverList.Clear(); } else { foreach (var cell in RBturnOverList) { cell.ReversiCellState = ReversiCell.ReversiCellStates.White; cell.m_anim.Play("WhiteAnimation"); } return; } } else if (states == ReversiCell.ReversiCellStates.Black) { if (reversiCells[x + 1, y - 1].ReversiCellState == ReversiCell.ReversiCellStates.White) { RBturnOverList.Add(reversiCells[x + 1, y - 1]); SRightBottomCheck(x + 1, y - 1, states); } else if (reversiCells[x + 1, y - 1].ReversiCellState == ReversiCell.ReversiCellStates.None) { RBturnOverList.Clear(); } else { foreach (var cell in RBturnOverList) { cell.ReversiCellState = ReversiCell.ReversiCellStates.Black; cell.m_anim.Play("BlackAnimation"); } return; } } } }
public static void STopCheck(int x, int y, ReversiCell.ReversiCellStates states) { if (y < m_rows - 1) { if (states == ReversiCell.ReversiCellStates.White) { if (reversiCells[x, y + 1].ReversiCellState == ReversiCell.ReversiCellStates.Black) { TturnOverList.Add(reversiCells[x, y + 1]); STopCheck(x, y + 1, states); } else if (reversiCells[x, y + 1].ReversiCellState == ReversiCell.ReversiCellStates.None) { TturnOverList.Clear(); } else { foreach (var cell in TturnOverList) { cell.ReversiCellState = ReversiCell.ReversiCellStates.White; cell.m_anim.Play("WhiteAnimation"); } return; } } else if (states == ReversiCell.ReversiCellStates.Black) { if (reversiCells[x, y + 1].ReversiCellState == ReversiCell.ReversiCellStates.White) { TturnOverList.Add(reversiCells[x, y + 1]); STopCheck(x, y + 1, states); } else if (reversiCells[x, y + 1].ReversiCellState == ReversiCell.ReversiCellStates.None) { TturnOverList.Clear(); } else { foreach (var cell in TturnOverList) { cell.ReversiCellState = ReversiCell.ReversiCellStates.Black; cell.m_anim.Play("BlackAnimation"); } return; } } } }
public void LeftCheck(int x, int y, ReversiCell.ReversiCellStates states) { if (states == ReversiCell.ReversiCellStates.White) { if (x > 0) { if (reversiCells[x - 1, y].ReversiCellState == ReversiCell.ReversiCellStates.Black) { LeftCheck(x - 1, y, states); } else if (reversiCells[x - 1, y].ReversiCellState == ReversiCell.ReversiCellStates.None) { reversiCells[x - 1, y].isWhitePlaceable = true; PlaceableList.Add(reversiCells[x - 1, y]); } else { return; } } } else if (states == ReversiCell.ReversiCellStates.Black) { if (x > 0) { if (reversiCells[x - 1, y].ReversiCellState == ReversiCell.ReversiCellStates.White) { LeftCheck(x - 1, y, states); } else if (reversiCells[x - 1, y].ReversiCellState == ReversiCell.ReversiCellStates.None) { reversiCells[x - 1, y].isBlackPlaceable = true; PlaceableList.Add(reversiCells[x - 1, y]); } else { return; } } } }
public void TopCheck(int x, int y, ReversiCell.ReversiCellStates states) { if (y < m_rows - 1) { if (states == ReversiCell.ReversiCellStates.White) { if (reversiCells[x, y + 1].ReversiCellState == ReversiCell.ReversiCellStates.Black) { TopCheck(x, y + 1, states); } else if (reversiCells[x, y + 1].ReversiCellState == ReversiCell.ReversiCellStates.None) { reversiCells[x, y + 1].isWhitePlaceable = true; PlaceableList.Add(reversiCells[x, y + 1]); } else { return; } } else if (states == ReversiCell.ReversiCellStates.Black) { if (reversiCells[x, y + 1].ReversiCellState == ReversiCell.ReversiCellStates.White) { TopCheck(x, y + 1, states); } else if (reversiCells[x, y + 1].ReversiCellState == ReversiCell.ReversiCellStates.None) { reversiCells[x, y + 1].isBlackPlaceable = true; PlaceableList.Add(reversiCells[x, y + 1]); } else { return; } } } }
public void RightCheck(int x, int y, ReversiCell.ReversiCellStates states) { if (x < m_columns - 1) { if (states == ReversiCell.ReversiCellStates.White) { if (reversiCells[x + 1, y].ReversiCellState == ReversiCell.ReversiCellStates.Black) { RightCheck(x + 1, y, states); } else if (reversiCells[x + 1, y].ReversiCellState == ReversiCell.ReversiCellStates.None) { reversiCells[x + 1, y].isWhitePlaceable = true; PlaceableList.Add(reversiCells[x + 1, y]); } else { return; } } else if (states == ReversiCell.ReversiCellStates.Black) { if (reversiCells[x + 1, y].ReversiCellState == ReversiCell.ReversiCellStates.White) { RightCheck(x + 1, y, states); } else if (reversiCells[x + 1, y].ReversiCellState == ReversiCell.ReversiCellStates.None) { reversiCells[x + 1, y].isBlackPlaceable = true; PlaceableList.Add(reversiCells[x + 1, y]); } else { return; } } } }
public void BottomCheck(int x, int y, ReversiCell.ReversiCellStates states) { if (y > 0) { if (states == ReversiCell.ReversiCellStates.White) { if (reversiCells[x, y - 1].ReversiCellState == ReversiCell.ReversiCellStates.Black) { BottomCheck(x, y - 1, states); } else if (reversiCells[x, y - 1].ReversiCellState == ReversiCell.ReversiCellStates.None) { reversiCells[x, y - 1].isWhitePlaceable = true; PlaceableList.Add(reversiCells[x, y - 1]); } else { return; } } else if (states == ReversiCell.ReversiCellStates.Black) { if (reversiCells[x, y - 1].ReversiCellState == ReversiCell.ReversiCellStates.White) { BottomCheck(x, y - 1, states); } else if (reversiCells[x, y - 1].ReversiCellState == ReversiCell.ReversiCellStates.None) { reversiCells[x, y - 1].isBlackPlaceable = true; PlaceableList.Add(reversiCells[x, y - 1]); } else { return; } } } }
public static void AddTurnOverCells(int x, int y, ReversiCell.ReversiCellStates states) { int bottom = y - 1; int top = y + 1; int right = x + 1; int left = x - 1; if (states == ReversiCell.ReversiCellStates.White) { if (bottom >= 0) { if (left >= 0) { if (reversiCells[left, bottom].ReversiCellState == ReversiCell.ReversiCellStates.Black) { LBturnOverList.Clear(); LBturnOverList.Add(reversiCells[left, bottom]); SLeftBottomCheck(left, bottom, states); } } if (reversiCells[x, bottom].ReversiCellState == ReversiCell.ReversiCellStates.Black) { BturnOverList.Clear(); BturnOverList.Add(reversiCells[x, bottom]); SBottomCheck(x, bottom, states); } if (right < m_columns) { if (reversiCells[right, bottom].ReversiCellState == ReversiCell.ReversiCellStates.Black) { RBturnOverList.Clear(); RBturnOverList.Add(reversiCells[right, bottom]); SRightBottomCheck(right, bottom, states); } } } if (left >= 0) { if (reversiCells[left, y].ReversiCellState == ReversiCell.ReversiCellStates.Black) { LturnOverList.Clear(); LturnOverList.Add(reversiCells[left, y]); SLeftCheck(left, y, states); } } if (right < m_columns) { if (reversiCells[right, y].ReversiCellState == ReversiCell.ReversiCellStates.Black) { RturnOverList.Clear(); RturnOverList.Add(reversiCells[right, y]); SRightCheck(right, y, states); } } if (top < m_rows) { if (left >= 0) { if (reversiCells[left, top].ReversiCellState == ReversiCell.ReversiCellStates.Black) { LTturnOverList.Clear(); LTturnOverList.Add(reversiCells[left, top]); SLeftTopCheck(left, top, states); } } if (reversiCells[x, top].ReversiCellState == ReversiCell.ReversiCellStates.Black) { TturnOverList.Clear(); TturnOverList.Add(reversiCells[x, top]); STopCheck(x, top, states); } if (right < m_columns) { if (reversiCells[right, top].ReversiCellState == ReversiCell.ReversiCellStates.Black) { RTturnOverList.Clear(); RTturnOverList.Add(reversiCells[right, top]); SRightTopCheck(right, top, states); } } } } else if (reversiCells[x, y].ReversiCellState == ReversiCell.ReversiCellStates.Black) { if (bottom >= 0) { if (left >= 0) { if (reversiCells[left, bottom].ReversiCellState == ReversiCell.ReversiCellStates.White) { LBturnOverList.Clear(); LBturnOverList.Add(reversiCells[left, bottom]); SLeftBottomCheck(left, bottom, states); } } if (reversiCells[x, bottom].ReversiCellState == ReversiCell.ReversiCellStates.White) { BturnOverList.Clear(); BturnOverList.Add(reversiCells[x, bottom]); SBottomCheck(x, bottom, states); } if (right < m_columns) { if (reversiCells[right, bottom].ReversiCellState == ReversiCell.ReversiCellStates.White) { RBturnOverList.Clear(); RBturnOverList.Add(reversiCells[right, bottom]); SRightBottomCheck(right, bottom, states); } } } if (left >= 0) { if (reversiCells[left, y].ReversiCellState == ReversiCell.ReversiCellStates.White) { LturnOverList.Clear(); LturnOverList.Add(reversiCells[left, y]); SLeftCheck(left, y, states); } } if (right < m_columns) { if (reversiCells[right, y].ReversiCellState == ReversiCell.ReversiCellStates.White) { RturnOverList.Clear(); RturnOverList.Add(reversiCells[right, y]); SRightCheck(right, y, states); } } if (top < m_rows) { if (left >= 0) { if (reversiCells[left, top].ReversiCellState == ReversiCell.ReversiCellStates.White) { LTturnOverList.Clear(); LTturnOverList.Add(reversiCells[left, top]); SLeftTopCheck(left, top, states); } } if (reversiCells[x, top].ReversiCellState == ReversiCell.ReversiCellStates.White) { TturnOverList.Clear(); TturnOverList.Add(reversiCells[x, top]); STopCheck(x, top, states); } if (right < m_columns) { if (reversiCells[right, top].ReversiCellState == ReversiCell.ReversiCellStates.White) { RTturnOverList.Clear(); RTturnOverList.Add(reversiCells[right, top]); SRightTopCheck(right, top, states); } } } } }
public void CheckCells(int x, int y, ReversiCell.ReversiCellStates states) { int bottom = y - 1; int top = y + 1; int right = x + 1; int left = x - 1; if (states == ReversiCell.ReversiCellStates.White) { if (bottom >= 0) { if (left >= 0) { if (reversiCells[left, bottom].ReversiCellState == ReversiCell.ReversiCellStates.Black) { LeftBottomCheck(left, bottom, states); } } if (reversiCells[x, bottom].ReversiCellState == ReversiCell.ReversiCellStates.Black) { BottomCheck(x, bottom, states); } if (right < m_columns) { if (reversiCells[right, bottom].ReversiCellState == ReversiCell.ReversiCellStates.Black) { RightBottomCheck(right, bottom, states); } } } if (left >= 0) { if (reversiCells[left, y].ReversiCellState == ReversiCell.ReversiCellStates.Black) { LeftCheck(left, y, states); } } if (right < m_columns) { if (reversiCells[right, y].ReversiCellState == ReversiCell.ReversiCellStates.Black) { RightCheck(right, y, states); } } if (top < m_rows) { if (left >= 0) { if (reversiCells[left, top].ReversiCellState == ReversiCell.ReversiCellStates.Black) { LeftTopCheck(left, top, states); } } if (reversiCells[x, top].ReversiCellState == ReversiCell.ReversiCellStates.Black) { TopCheck(x, top, states); } if (right < m_columns) { if (reversiCells[right, top].ReversiCellState == ReversiCell.ReversiCellStates.Black) { RightTopCheck(right, top, states); } } } } else if (reversiCells[x, y].ReversiCellState == ReversiCell.ReversiCellStates.Black) { if (bottom >= 0) { if (left >= 0) { if (reversiCells[left, bottom].ReversiCellState == ReversiCell.ReversiCellStates.White) { LeftBottomCheck(left, bottom, states); } } if (reversiCells[x, bottom].ReversiCellState == ReversiCell.ReversiCellStates.White) { BottomCheck(x, bottom, states); } if (right < m_columns) { if (reversiCells[right, bottom].ReversiCellState == ReversiCell.ReversiCellStates.White) { RightBottomCheck(right, bottom, states); } } } if (left >= 0) { if (reversiCells[left, y].ReversiCellState == ReversiCell.ReversiCellStates.White) { LeftCheck(left, y, states); } } if (right < m_columns) { if (reversiCells[right, y].ReversiCellState == ReversiCell.ReversiCellStates.White) { RightCheck(right, y, states); } } if (top < m_rows) { if (left >= 0) { if (reversiCells[left, top].ReversiCellState == ReversiCell.ReversiCellStates.White) { LeftTopCheck(left, top, states); } } if (reversiCells[x, top].ReversiCellState == ReversiCell.ReversiCellStates.White) { TopCheck(x, top, states); } if (right < m_columns) { if (reversiCells[right, top].ReversiCellState == ReversiCell.ReversiCellStates.White) { RightTopCheck(right, top, states); } } } } }