public void Go() { var goParams = new Uci.UciGoParameters { BlackInc = this.TimeSettings.MoveIncrement * 1000, BlackTime = Clock.InfiniteTime ? (long?)null : Clock.TimeRemainingBlack, Depth = TimeSettings.Depth, Infinite = TimeSettings.TimeModeMachine == TimeMode.Infinite, MoveTime = TimeSettings.TimeModeMachine == TimeMode.TimePerMove ? TimeSettings.TimePerMove : null, Nodes = TimeSettings.TimeModeMachine == TimeMode.NodeCount ? TimeSettings.NodeCount : null, WhiteInc = TimeSettings.MoveIncrement * 1000, WhiteTime = Clock.InfiniteTime ? (long?)null : Clock.TimeRemainingWhite, }; if (Board.PlayerTurn == Color.White) { PlayerWhite.Play(goParams); Clock.StartClock(Color.White); } else { PlayerBlack.Play(goParams); Clock.StartClock(Color.Black); } }
public void LoadAndSetup() { PlayerWhite.RegisterCommandListener((d, msg) => Log.InfoFormat("White {0}: {1}", d == UciProcess.CommandDirection.EngineInput ? "Input" : "Output", msg)); PlayerBlack.RegisterCommandListener((d, msg) => Log.InfoFormat("Black {0}: {1}", d == UciProcess.CommandDirection.EngineInput ? "Input" : "Output", msg)); PlayerWhite.Start(); PlayerBlack.Start(); }
public void Proceed() { if (GameState.Winner == null) { if (GameState.CurTurn == PColor.White) { if (GameState.CurTurnType == GameState.TurnType.Move) { PlayerWhite.AskForMove(this); } else { PlayerWhite.AskForRoll(this); } } else { if (GameState.CurTurnType == GameState.TurnType.Move) { PlayerBlack.AskForMove(this); } else { PlayerBlack.AskForRoll(this); } } } else { foreach (IGameControllerEvent l in _listeners) { l.OnGameEnd(); } } }
/// <summary> /// Call by Controller, to initialize and start new game /// </summary> public void NewGame() { PlayerBlack = GameInfo.Instance.ShouldUpsidedown ? playerUp : playerDown; PlayerWhite = GameInfo.Instance.ShouldUpsidedown ? playerDown : playerUp; PlayerBlack.NewGame(Unit.OwnerEnum.Black); PlayerWhite.NewGame(Unit.OwnerEnum.White); }
public void Dispose() { if (!isDisposed) { PlayerWhite.Dispose(); PlayerBlack.Dispose(); Clock.Dispose(); isDisposed = true; } }
public void Stop() { if (Board.PlayerTurn == Color.White) { PlayerWhite.Stop(); Clock.StopClock(); } else { PlayerBlack.Stop(); Clock.StopClock(); } }
public bool CheckIfGameOver() { return(PlayerBlack.IsWin(GameBoard, GameBar) || PlayerRed.IsWin(GameBoard, GameBar) ? true : false); }