void Start() { if (gameModeIndexSet) { gameMode = (GameMode)gameModeIndex; } if (gameMode == GameMode.Regular) { // GetComponent<Clock>().StartClock(); } Board.SetPositionFromFen(Definitions.gameStartFen, true); ZobristKey.Init(); Evaluation.Init(); if (regenerateOpeningBook) { OpeningBookGenerator.GenerateBook(); } if (useOpeningBook) { OpeningBookReader.Init(); } playerManager = GetComponent <MoveManager> (); playerManager.CreatePlayers(); Board.SetPositionFromFen(Definitions.gameStartFen, true); }
public override void RequestMove() { moveSearchStartTime = UnityEngine.Time.time; base.RequestMove(); bool bookMovePlayed = false; if (OpeningBookReader.IsInBook() && GameManager.instance.useOpeningBook) { UnityEngine.Debug.Log("In Book"); Random prng = new Random(); List <ushort> bookMoves = OpeningBookReader.GetBookMoves(); ushort randomBookMove = bookMoves[prng.Next(0, bookMoves.Count)]; if (first) { first = false; //randomBookMove = sic; } if (moveGenerator.GetMoves(false, false).Contains(randomBookMove)) // ensure book move is legal (possible for zobrist keys to have hashed wrong position) { UnityEngine.Debug.Log("Book move"); HandleAIMove(randomBookMove); bookMovePlayed = true; } else { UnityEngine.Debug.LogError("Book error"); } } if (!bookMovePlayed) { moveRequested = true; searcher.StartSearch(); } }