//检测游戏状态 public void Check() { if (!isRuning) { return; } this.gameObject.GetComponent <UserGUI>().gameMessage = ""; //判断是否已经胜利 if (rightLandRoleController.GetLandModel().priestNum == 3) { this.gameObject.GetComponent <UserGUI>().gameMessage = "You Win!"; isRuning = false; } else { /*判断是否已经失败 * 若任意一侧,牧师数量不为0且牧师数量少于恶魔数量,则游戏失败 */ int leftPriestNum, leftDevilNum, rightPriestNum, rightDevilNum; leftPriestNum = leftLandRoleController.GetLandModel().priestNum + (boatRoleController.GetBoatModel().isRight ? 0 : boatRoleController.GetBoatModel().priestNum); leftDevilNum = leftLandRoleController.GetLandModel().devilNum + (boatRoleController.GetBoatModel().isRight ? 0 : boatRoleController.GetBoatModel().devilNum); if (leftPriestNum != 0 && leftPriestNum < leftDevilNum) { this.gameObject.GetComponent <UserGUI>().gameMessage = "Game Over!"; isRuning = false; } rightPriestNum = rightLandRoleController.GetLandModel().priestNum + (boatRoleController.GetBoatModel().isRight ? boatRoleController.GetBoatModel().priestNum : 0); rightDevilNum = rightLandRoleController.GetLandModel().devilNum + (boatRoleController.GetBoatModel().isRight ? boatRoleController.GetBoatModel().devilNum : 0); if (rightPriestNum != 0 && rightPriestNum < rightDevilNum) { this.gameObject.GetComponent <UserGUI>().gameMessage = "Game Over!"; isRuning = false; } } }
//获得帮助 public void Tips() { PathNode node = pathController.Search(new int[] { boatController.GetBoatModel().priestNum, boatController.GetBoatModel().devilNum, leftLandController.GetLandModel().priestNum, rightLandController.GetLandModel().priestNum, leftLandController.GetLandModel().devilNum, rightLandController.GetLandModel().devilNum, boatController.GetBoatModel().isRight?1:0 }); if (node.GetState() == 0) { PathNode nNode = node.GetNext(); TransferState(node, nNode); } }