private void resetBoardForRematch() { hideAllImages(); m_FirstPlayer.ClearPoints(); m_SecondPlayer.ClearPoints(); m_CurrentPlayer = m_SecondPlayer; m_CurrentPlayer = m_CurrentPlayer.ChangePlayer(m_FirstPlayer, m_SecondPlayer); if (m_ComputerMemory != null) { m_ComputerMemory = new ComputerAI(); } m_GameBoard = new MemoryGameBoard(m_NumberOfRows, m_NumberOfColumns); m_GameBoard.FillBoard(); for (int i = 0; i < m_NumberOfRows; i++) { for (int j = 0; j < m_NumberOfColumns; j++) { m_GameBoard.BoardMatrix[i, j].CardVisabilityChanged += card_CardVisabilityChanged; m_CardsButtons[i, j].LogicMemoryGameCardReference = m_GameBoard.BoardMatrix[i, j]; m_CardsButtons[i, j].RowNumber = i; m_CardsButtons[i, j].ColumnNumber = j; m_CardsButtons[i, j].UpdateImageURL(); } } this.Update(); }
void Start() { sliderHandler = GameObject.Find("SliderHandler").GetComponent <SliderHandler>(); dialogHandler = GameObject.Find("DialogBorder").GetComponent <DialogHandler>(); computerAI = GameObject.Find("ComputerAI").GetComponent <ComputerAI>(); diceHandler = GameObject.Find("DicePanel").GetComponent <DiceHandler>(); buttonHandler = GameObject.Find("ButtonHandler").GetComponent <ButtonHandler>(); }
// 战斗结束 public override void BattleEnd(string winner) { if (ComputerAI != null) { ComputerAI.Destroy(); } base.BattleEnd(winner); // 记录胜负场次 UserInfo winnerInfo = null; UserInfo loserInfo = null; if (winner != null /* null 是平局情况,算两人都输 */) { if (winner == UsrsID[1]) { winnerInfo = UsrsInfo[1]; loserInfo = UsrsInfo[2]; } else if (winner == UsrsID[2]) { winnerInfo = UsrsInfo[2]; loserInfo = UsrsInfo[1]; } winnerInfo.WinCount++; loserInfo.LoseCount++; } else { winnerInfo = UsrsInfo[1]; loserInfo = UsrsInfo[2]; } // 发放战斗奖励 foreach (var s in ss) { if (s.ID != UsrsID[1] && s.ID != UsrsID[2]) { continue; } s.Usr.Update(); } // 广播结果 Broadcast("BattleEnd", (buff) => { buff.Write(winner); }); // 保存录像 var replayID = SaveCurrentBattleReplay(UsrsID[1], UsrsID[2], UsrsInfo[1].Name, UsrsInfo[2].Name, FrameNo, IsPVP, currentBattleMsgHistory).ID; winnerInfo.AddMyReplay(replayID); loserInfo.AddMyReplay(replayID); }
private void handleComputerTurn() { if (m_OthelloGame.CurrentPlayerTurn.PlayerType.Equals(Player.ePlayerTypes.Computer)) { OthelloLogic.Point computerBestMove; computerBestMove = ComputerAI.FindBestMoveForComputer(m_OthelloGame, m_OthelloGame.CurrentPlayerTurn, m_OthelloGame.CurrentPlayerTurn.PossibilitiesCellsForNextTurn); Button buttonClickedByComputer = (Button)m_BoardControls[computerBestMove.Row, computerBestMove.Column]; System.Threading.Thread.Sleep(650); boardButton_Clicked(buttonClickedByComputer, EventArgs.Empty); } }
private void InitializeAttributes() { gameConfig = GetNodeOrNull <GameSettings>("/root/GameSettings").GameConfig; gameData = new GameData(gameConfig); computerAI = new ComputerAI(gameConfig, gameData); gameLevelLabel = GetNodeOrNull <Label>(gameLevelLabelNodePath); whoStartsLabel = GetNodeOrNull <Label>(whoStartsLabelNodePath); messageLabel = GetNodeOrNull <Label>(messageLabelNodePath); playerMarkTextureRect = GetNodeOrNull <TextureRect>( playerMarkTextureRectNodePath); computerMarkTextureRect = GetNodeOrNull <TextureRect>( computerMarkTextureRectNodePath); }
internal User(string i_Name, bool i_IsHuman, int i_MaxKeyToRemebers) { m_IsHuman = i_IsHuman; if (i_IsHuman) { m_Name = i_Name; m_AI = null; } else { m_Name = "COMPUTER"; m_AI = new ComputerAI(i_MaxKeyToRemebers); } }
public void OnTimeElapsed(int te) { if (Finished) { return; } timeElapsed += te; if (timeElapsed >= FrameInterval) { timeElapsed -= FrameInterval; // MoveOneStep 和发送 "FrameMoveForward" 消息之间不可插入任何其它逻辑,否则 // 插入在中间的逻辑,和客户端数据会差一帧 try { MoveOneStep(); } catch (Exception ex) { Broadcast("Crash", (buff) => { buff.Write(ex.Message); }); Broadcast("BattleEnd", (buff) => { buff.Write(UsrsID[1]); }); SaveCurrentBattleReplay(UsrsID[1], UsrsID[2], UsrsInfo[1].Name, UsrsInfo[2].Name, FrameNo, IsPVP, currentBattleMsgHistory, true); Finished = true; } Broadcast("FF", null); // (buff) => { buff.Write(FrameNo); }); if (Finished) // 可能已经结束了 { return; } if (ComputerAI != null) { ComputerAI.OnTimeElapsed(te); } } }
internal void UpdateGameSettings(string i_BoardSize, Player i_FirstPlayer, Player i_SecondPlayer, bool i_IsAgaintComputer) { m_NumberOfRows = i_BoardSize[0] - '0'; m_NumberOfColumns = i_BoardSize[2] - '0'; m_FirstPlayer = i_FirstPlayer; m_FirstPlayer.PlayerChanged += player_CurrentPlayerChanged; m_FirstPlayer.PlayerScoreChanged += player_PlayerScoreIncreased; m_SecondPlayer = i_SecondPlayer; m_SecondPlayer.PlayerChanged += player_CurrentPlayerChanged; m_SecondPlayer.PlayerScoreChanged += player_PlayerScoreIncreased; m_CurrentPlayer = i_FirstPlayer; m_GameManager = new PlayMemoryGame(); m_GameBoard = new MemoryGameBoard(i_BoardSize[0] - '0', i_BoardSize[2] - '0'); m_CardsButtons = new MemoryGameCardButtuon[i_BoardSize[0] - '0', i_BoardSize[2] - '0']; m_IsAgainstComputer = i_IsAgaintComputer; if (m_IsAgainstComputer == true) { m_ComputerMemory = new ComputerAI(); } initializeComponent(); }
void Start() { player = FindObjectOfType <Player>(); machine = FindObjectOfType <ComputerAI>(); fight = GameObject.Find("Fight").GetComponent <RectTransform>(); leftBar = GameObject.Find("LifeBar_left").GetComponent <Lifebar>(); rightBar = GameObject.Find("LifeBar_right").GetComponent <Lifebar>(); koText = GameObject.Find("KO").GetComponent <RectTransform>(); koText.anchoredPosition = Vector2.up * 10000; win = GameObject.Find("KO/win").GetComponent <Text>(); ball = FindObjectOfType <Ball>(); ball.OutLeft = AddDamageToLeft; ball.OutRight = AddDamageToRight; StartCoroutine(Starting()); ball.FreezeBall(); }
// 战斗开始 public override void BattleBegin(int randomSeed) { base.BattleBegin(randomSeed); timeElapsed = 0; currentBattleMsgHistory.Clear(); Broadcast("BattleBegin", (buff) => { buff.Write(randomSeed); buff.Write(Lv.LevelID); buff.Write(WinnerAward); buff.Write(LoserAward); buff.Write(WinnerAwardUnits); buff.Write(ID); buff.Write(UsrsID); buff.Write(UsrsInfo); buff.Write(Map.Size); buff.Write(IsPVP); }); if (ComputerAI != null) { ComputerAI.Start(); } }
private void ComputerStartToCompute() { var computer = new ComputerAI(new BoardData(_tortoise, _hare), Setting.MaxPly, NowTurn); _computerAITask = new Task<Tuple<int, Chess.Action>>(computer.BestMove); _computerAITask.Start(); }
void Start() { stateHandler = GameObject.Find("StateHandler").GetComponent <StateHandler>(); computerAI = GameObject.Find("ComputerAI").GetComponent <ComputerAI>(); }
public void InitializedMemmory(Board i_Board) { this.OptionalChoices = new ComputerAI(i_Board); }
public void OnGUI() { ComputerAI r = new ComputerAI(); GUIStyle fontStyle = new GUIStyle(); fontStyle.normal.background = null; fontStyle.normal.textColor = new Color(1, 0, 0); fontStyle.fontSize = 24; GUI.backgroundColor = Color.red; int result = check(); if (GUI.Button(new Rect(385, 200, 100, 50), "电脑先手") && state[1, 1] == 0) { state[1, 1] = 2; } if (GUI.Button(new Rect(275, 200, 100, 50), "Reset")) { reset(); } if (GUI.Button(new Rect(330, 300, 100, 50), "悔棋") && count != 0 && result == 0) { state[a, b] = 0; state[c, d] = 0; } if (result == 1) { GUI.Label(new Rect(325, 170, 100, 50), " 你赢了!", fontStyle); A = 1; output(); } else if (result == 2) { GUI.Label(new Rect(325, 170, 100, 50), "菜鸟,你输了", fontStyle); A = 2; output(); } for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) { if (state[i, j] == 1) { GUI.Button(new Rect(300 + i * 50, j * 50, 50, 50), "O"); } if (state[i, j] == 2) { GUI.Button(new Rect(300 + i * 50, j * 50, 50, 50), "X"); } if (GUI.Button(new Rect(300 + i * 50, j * 50, 50, 50), "")) { if (result == 0) { a = i; b = j; state[i, j] = 1; result = check(); r.Step1(); if ((state[0, 2] == 1 && state[2, 0] == 1) || (state[0, 0] == 1 && state[2, 2] == 1)) { r.Step2(); } else { r.Step3(); } r.Step4(); r.Step5(); r.Step6(1); r.Step6(2); if (r.x != -1 && r.y != -1 && state[r.x, r.y] == 0 && result == 0) { state[r.x, r.y] = 2; c = r.x; d = r.y; } } } } } count = 0; for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) { if (state[i, j] == 0) { count++; } } } if (result == 0 && count == 0) { GUI.Label(new Rect(315, 170, 100, 50), "平局", fontStyle); output(); } }