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(); } }
private void BoardView_WantNewGame(object sender, int Players) { PlayerWhite = (((Players & 0b10) >> 1) == 1) ? (Player)(new HumanPlayer()) : (new EnginePlayer()); PlayerBlack = ((Players & 0b01) == 1) ? (Player)(new HumanPlayer()) : (new EnginePlayer()); this.PlayerWhite.MakesMove += Player_MakesMove; this.PlayerBlack.MakesMove += Player_MakesMove; GamePosition = new Position(); BoardView.SetStartPos(GamePosition); if (PlayerBlack is HumanPlayer && PlayerWhite is EnginePlayer && !BoardView.Flipped) { BoardView.Flip(); } if (PlayerWhite is HumanPlayer && PlayerBlack is EnginePlayer && BoardView.Flipped) { BoardView.Flip(); } PlayerWhite.YourMove(GamePosition); }
public void Next() { PlayerWhite.TakeTurn(); }