private void CheckKillKingWhenGo(GameObject firstGO) { GameObject[,] l = app.listChessMans; ChessManData chess = firstGO.GetComponent <ChessManData>(); int ii = chess.i; int jj = chess.j; for (int i = ii + 1; i <= 9; i++) { if (l[i, jj].GetComponent <ChessManData>().mODECHESS == MODECHESS.Phao || l[i, jj].GetComponent <ChessManData>().mODECHESS == MODECHESS.Xe) { CheckKillKing(l[i, jj]); break; } } for (int j = jj + 1; j <= 8; j++) { if (l[ii, j].GetComponent <ChessManData>().mODECHESS == MODECHESS.Phao || l[ii, j].GetComponent <ChessManData>().mODECHESS == MODECHESS.Xe) { CheckKillKing(l[ii, j]); break; } } for (int j = jj - 1; j >= 0; j--) { if (l[ii, j].GetComponent <ChessManData>().mODECHESS == MODECHESS.Phao || l[ii, j].GetComponent <ChessManData>().mODECHESS == MODECHESS.Xe) { CheckKillKing(l[ii, j]); break; } } }
private void initBoard() { for (int i = 0; i < 10; i++) { for (int j = 0; j < 9; j++) { GameObject g = Instantiate(instanceChessMan, new Vector3(-4 + j, 4.5f - i), Quaternion.identity); g.transform.SetParent(chessMans.transform); g.name = "ChessMan" + i + "," + j; listChessMans[i, j] = g; listChessMans[i, j].AddComponent <ChessManData>(); listChessMans[i, j].GetComponent <ChessMan>().app = gameObject.GetComponent <CCAplication>(); ChessManData chess = listChessMans[i, j].GetComponent <ChessManData>(); chess.i = i; chess.j = j; chess.mODECHESS = MODECHESS.None; } } foreach (var item in model1.gameModelDatas) { listChessMans[item.i, item.j].GetComponent <SpriteRenderer>().sprite = item.sprite; listChessMans[item.i, item.j].GetComponent <ChessManData>().isSeted = true; listChessMans[item.i, item.j].GetComponent <ChessManData>().mODECHESS = item.mODECHESS; listChessMans[item.i, item.j].GetComponent <ChessManData>().isRedChess = item.isRedChessData; } }
public void updateData(ChessManData chessFirst) { isSeted = true; isRedChess = chessFirst.isRedChess; mODECHESS = chessFirst.mODECHESS; }
private void OnTinh(GameObject firstGO) { GameObject[,] l = app.listChessMans; ChessManData chess = firstGO.GetComponent <ChessManData>(); int ii = chess.i; int jj = chess.j; bool tempIsRed = chess.isRedChess; chess.listCanKill.Clear(); chess.listCanGo.Clear(); kills = chess.listCanKill; gos = chess.listCanGo; if (chess.isRedChess) { if (ii + 2 <= 9 && jj + 2 <= 8) { if (l[ii + 2, jj + 2].GetComponent <ChessManData>().isSeted == false) { gos.Add(l[ii + 2, jj + 2]); } else { if (l[ii + 2, jj + 2].GetComponent <ChessManData>().isRedChess != firstGO.GetComponent <ChessManData>().isRedChess) { kills.Add(l[ii + 2, jj + 2]); } } } if (ii + 2 <= 9 && jj - 2 >= 0) { if (l[ii + 2, jj - 2].GetComponent <ChessManData>().isSeted == false) { gos.Add(l[ii + 2, jj - 2]); } else { if (l[ii + 2, jj - 2].GetComponent <ChessManData>().isRedChess != firstGO.GetComponent <ChessManData>().isRedChess) { kills.Add(l[ii + 2, jj - 2]); } } } if (ii - 2 >= 5 && jj + 2 <= 9) { if (l[ii - 2, jj + 2].GetComponent <ChessManData>().isSeted == false) { gos.Add(l[ii - 2, jj + 2]); } else { if (l[ii - 2, jj + 2].GetComponent <ChessManData>().isRedChess != firstGO.GetComponent <ChessManData>().isRedChess) { kills.Add(l[ii - 2, jj + 2]); } } } if (ii - 2 >= 5 && jj - 2 >= 0) { if (l[ii - 2, jj - 2].GetComponent <ChessManData>().isSeted == false) { gos.Add(l[ii - 2, jj - 2]); } else { if (l[ii - 2, jj - 2].GetComponent <ChessManData>().isRedChess != firstGO.GetComponent <ChessManData>().isRedChess) { kills.Add(l[ii - 2, jj - 2]); } } } } else { if (ii + 2 <= 4 && jj + 2 <= 8) { if (l[ii + 2, jj + 2].GetComponent <ChessManData>().isSeted == false) { gos.Add(l[ii + 2, jj + 2]); } else { if (l[ii + 2, jj + 2].GetComponent <ChessManData>().isRedChess != firstGO.GetComponent <ChessManData>().isRedChess) { kills.Add(l[ii + 2, jj + 2]); } } } if (ii + 2 <= 4 && jj - 2 >= 0) { if (l[ii + 2, jj - 2].GetComponent <ChessManData>().isSeted == false) { gos.Add(l[ii + 2, jj - 2]); } else { if (l[ii + 2, jj - 2].GetComponent <ChessManData>().isRedChess != firstGO.GetComponent <ChessManData>().isRedChess) { kills.Add(l[ii + 2, jj - 2]); } } } if (ii - 2 >= 0 && jj + 2 <= 8) { if (l[ii - 2, jj + 2].GetComponent <ChessManData>().isSeted == false) { gos.Add(l[ii - 2, jj + 2]); } else { if (l[ii - 2, jj + 2].GetComponent <ChessManData>().isRedChess != firstGO.GetComponent <ChessManData>().isRedChess) { kills.Add(l[ii - 2, jj + 2]); } } } if (ii - 2 >= 0 && jj - 2 >= 0) { if (l[ii - 2, jj - 2].GetComponent <ChessManData>().isSeted == false) { gos.Add(l[ii - 2, jj - 2]); } else { if (l[ii - 2, jj - 2].GetComponent <ChessManData>().isRedChess != firstGO.GetComponent <ChessManData>().isRedChess) { kills.Add(l[ii - 2, jj - 2]); } } } } }
private void OnSi(GameObject firstGO) { GameObject[,] l = app.listChessMans; ChessManData chess = firstGO.GetComponent <ChessManData>(); int ii = chess.i; int jj = chess.j; bool tempIsRed = chess.isRedChess; chess.listCanKill.Clear(); chess.listCanGo.Clear(); kills = chess.listCanKill; gos = chess.listCanGo; if (chess.isRedChess) { if (ii + 1 <= 9 && jj + 1 <= 5) { if (l[ii + 1, jj + 1].GetComponent <ChessManData>().isSeted == false) { gos.Add(l[ii + 1, jj + 1]); } else { if (l[ii + 1, jj + 1].GetComponent <ChessManData>().isRedChess != firstGO.GetComponent <ChessManData>().isRedChess) { kills.Add(l[ii + 1, jj + 1]); } } } if (ii + 1 <= 9 && jj - 1 >= 3) { if (l[ii + 1, jj - 1].GetComponent <ChessManData>().isSeted == false) { gos.Add(l[ii + 1, jj - 1]); } else { if (l[ii + 1, jj - 1].GetComponent <ChessManData>().isRedChess != firstGO.GetComponent <ChessManData>().isRedChess) { kills.Add(l[ii + 1, jj - 1]); } } } if (ii - 1 >= 7 && jj + 1 <= 5) { if (l[ii - 1, jj + 1].GetComponent <ChessManData>().isSeted == false) { gos.Add(l[ii - 1, jj + 1]); } else { if (l[ii - 1, jj + 1].GetComponent <ChessManData>().isRedChess != firstGO.GetComponent <ChessManData>().isRedChess) { kills.Add(l[ii - 1, jj + 1]); } } } if (ii - 1 >= 7 && jj - 1 >= 3) { if (l[ii - 1, jj - 1].GetComponent <ChessManData>().isSeted == false) { gos.Add(l[ii - 1, jj - 1]); } else { if (l[ii - 1, jj - 1].GetComponent <ChessManData>().isRedChess != firstGO.GetComponent <ChessManData>().isRedChess) { kills.Add(l[ii - 1, jj - 1]); } } } } else { if (ii + 1 <= 2 && jj + 1 <= 5) { if (l[ii + 1, jj + 1].GetComponent <ChessManData>().isSeted == false) { gos.Add(l[ii + 1, jj + 1]); } else { if (l[ii + 1, jj + 1].GetComponent <ChessManData>().isRedChess != firstGO.GetComponent <ChessManData>().isRedChess) { kills.Add(l[ii + 1, jj + 1]); } } } if (ii + 1 <= 2 && jj - 1 >= 3) { if (l[ii + 1, jj - 1].GetComponent <ChessManData>().isSeted == false) { gos.Add(l[ii + 1, jj - 1]); } else { if (l[ii + 1, jj - 1].GetComponent <ChessManData>().isRedChess != firstGO.GetComponent <ChessManData>().isRedChess) { kills.Add(l[ii + 1, jj - 1]); } } } if (ii - 1 >= 0 && jj + 1 <= 5) { if (l[ii - 1, jj + 1].GetComponent <ChessManData>().isSeted == false) { gos.Add(l[ii - 1, jj + 1]); } else { if (l[ii - 1, jj + 1].GetComponent <ChessManData>().isRedChess != firstGO.GetComponent <ChessManData>().isRedChess) { kills.Add(l[ii - 1, jj + 1]); } } } if (ii - 1 >= 0 && jj - 1 >= 3) { if (l[ii - 1, jj - 1].GetComponent <ChessManData>().isSeted == false) { gos.Add(l[ii - 1, jj - 1]); } else { if (l[ii - 1, jj - 1].GetComponent <ChessManData>().isRedChess != firstGO.GetComponent <ChessManData>().isRedChess) { kills.Add(l[ii - 1, jj - 1]); } } } } }
private void OnXe(GameObject firstGO) { GameObject[,] l = app.listChessMans; ChessManData chess = firstGO.GetComponent <ChessManData>(); int ii = chess.i; int jj = chess.j; bool tempIsRed = chess.isRedChess; chess.listCanKill.Clear(); chess.listCanGo.Clear(); kills = chess.listCanKill; gos = chess.listCanGo; for (int j = jj + 1; j < 9; j++) { if (l[ii, j].GetComponent <ChessManData>().isSeted) { if (l[ii, j].GetComponent <ChessManData>().isRedChess != tempIsRed) { kills.Add(l[ii, j]); } break; } gos.Add(l[ii, j]); } for (int j = jj - 1; j >= 0; j--) { if (l[ii, j].GetComponent <ChessManData>().isSeted) { if (l[ii, j].GetComponent <ChessManData>().isRedChess != tempIsRed) { kills.Add(l[ii, j]); } break; } gos.Add(l[ii, j]); } for (int i = ii + 1; i < 10; i++) { if (l[i, jj].GetComponent <ChessManData>().isSeted) { if (l[i, jj].GetComponent <ChessManData>().isRedChess != tempIsRed) { kills.Add(l[i, jj]); } break; } gos.Add(l[i, jj]); } for (int i = ii - 1; i >= 0; i--) { if (l[i, jj].GetComponent <ChessManData>().isSeted) { if (l[i, jj].GetComponent <ChessManData>().isRedChess != tempIsRed) { kills.Add(l[i, jj]); } break; } gos.Add(l[i, jj]); } }
private void OnMa(GameObject firstGO) { GameObject[,] l = app.listChessMans; ChessManData chess = firstGO.GetComponent <ChessManData>(); int ii = chess.i; int jj = chess.j; bool tempIsRed = chess.isRedChess; chess.listCanKill.Clear(); chess.listCanGo.Clear(); kills = chess.listCanKill; gos = chess.listCanGo; // List<GameObject> listNearMas = new List<GameObject>(){ l[ii + 1, jj], l[ii - 1, jj] , l[ii, jj+1] , l[ii, jj-1] }; if (ii + 1 <= 9 && l[ii + 1, jj].GetComponent <ChessManData>().isSeted == false) { if (ii + 2 <= 9 && jj + 1 <= 8) { ChessManData c = l[ii + 2, jj + 1].GetComponent <ChessManData>(); if (c.isSeted) { if (c.isRedChess != firstGO.GetComponent <ChessManData>().isRedChess) { kills.Add(l[ii + 2, jj + 1]); } } else { gos.Add(l[ii + 2, jj + 1]); } } if (ii + 2 <= 9 && jj - 1 >= 0) { if (jj - 1 < 0) { return; } ChessManData c = l[ii + 2, jj - 1].GetComponent <ChessManData>(); if (c.isSeted) { if (c.isRedChess != firstGO.GetComponent <ChessManData>().isRedChess) { kills.Add(l[ii + 2, jj - 1]); } } else { gos.Add(l[ii + 2, jj - 1]); } } } if (ii - 1 >= 0 && l[ii - 1, jj].GetComponent <ChessManData>().isSeted == false) { if (ii - 2 >= 0 && jj + 1 <= 8) { ChessManData c = l[ii - 2, jj + 1].GetComponent <ChessManData>(); if (c.isSeted) { if (c.isRedChess != firstGO.GetComponent <ChessManData>().isRedChess) { kills.Add(l[ii - 2, jj + 1]); } } else { gos.Add(l[ii - 2, jj + 1]); } } if (ii - 2 >= 0 && jj - 1 >= 0) { ChessManData c = l[ii - 2, jj - 1].GetComponent <ChessManData>(); if (c.isSeted) { if (c.isRedChess != firstGO.GetComponent <ChessManData>().isRedChess) { kills.Add(l[ii - 2, jj - 1]); } } else { gos.Add(l[ii - 2, jj - 1]); } } } if (jj + 1 <= 8 && l[ii, jj + 1].GetComponent <ChessManData>().isSeted == false) { if (ii - 1 >= 0 && jj + 2 <= 8) { ChessManData c = l[ii - 1, jj + 2].GetComponent <ChessManData>(); if (c.isSeted) { if (c.isRedChess != firstGO.GetComponent <ChessManData>().isRedChess) { kills.Add(l[ii - 1, jj + 2]); } } else { gos.Add(l[ii - 1, jj + 2]); } } if (jj + 2 <= 8 && ii + 1 <= 8) { ChessManData c = l[ii + 1, jj + 2].GetComponent <ChessManData>(); if (c.isSeted) { if (c.isRedChess != firstGO.GetComponent <ChessManData>().isRedChess) { kills.Add(l[ii + 1, jj + 2]); } } else { gos.Add(l[ii + 1, jj + 2]); } } } if (jj - 1 >= 0 && l[ii, jj - 1].GetComponent <ChessManData>().isSeted == false) { if (ii - 1 >= 0 && jj - 2 >= 0) { ChessManData c = l[ii - 1, jj - 2].GetComponent <ChessManData>(); if (c.isSeted) { if (c.isRedChess != firstGO.GetComponent <ChessManData>().isRedChess) { kills.Add(l[ii - 1, jj - 2]); } } else { gos.Add(l[ii - 1, jj - 2]); } } if (jj - 2 >= 0 && ii + 1 <= 8) { ChessManData c = l[ii + 1, jj - 2].GetComponent <ChessManData>(); if (c.isSeted) { if (c.isRedChess != firstGO.GetComponent <ChessManData>().isRedChess) { kills.Add(l[ii + 1, jj - 2]); } } else { gos.Add(l[ii + 1, jj - 2]); } } } }