예제 #1
0
    // Use this for initialization
    void Awake()
    {
        _getSquares();
        _placePieces();

        _engine = GetComponent <cgEngine>();

        if (Mode == BoardMode.EngineVsPlayer)
        {
            _engine.MakeMove(_abstractBoard, true, _engineCallback);
        }
    }
예제 #2
0
    /// <summary>
    /// Start the game, initialize the chessboard prefab.
    /// </summary>
    public void Play()
    {
        cgChessBoardScript newboard  = GameObject.Instantiate(ChessBoard).GetComponent <cgChessBoardScript>();
        cgEngine           newengine = newboard.GetComponent <cgEngine>();

        newengine.SearchDepthWeak   = _weakDepthDifficulties[(int)DifficultySlider.value - 1];
        newengine.SearchDepthStrong = _strongDepthDifficulties[(int)DifficultySlider.value - 1];
        newboard.StartGame(currentBoardMode);
        //newobj.GetComponent

        GameObject.DestroyImmediate(gameObject);
    }
    /// <summary>
    /// Start the game, initialize the chessboard prefab.
    /// </summary>
    public void Play()
    {
        cgChessBoardScript newboard = GameObject.Instantiate((this.BoardType.value == 0 ? ChessBoard : ChessBoardTiny)).GetComponent <cgChessBoardScript>();

        newboard.searchDepthStrong = _strongDepthDifficulties[(int)DifficultySlider.value - 1];
        newboard.searchDepthWeak   = _weakDepthDifficulties[(int)DifficultySlider.value - 1];
        cgEngine newengine = newboard.getEngine;

        newboard.Mode        = currentBoardMode;
        newboard.displayAs3d = DisplayAs3D.isOn;
        newboard.start();
        //newobj.GetComponent

        GameObject.DestroyImmediate(gameObject);
    }
 /// <summary>
 /// Start the game, with provided board.
 /// </summary>
 /// <param name="customBoard">The abstract board that we should match, if none specified we use existing one, if none exists we generate an 8x8 board</param>
 /// <param name="mode">Which mode the game is in, player vs player, player vs engine, engine vs engine etc.</param>
 public void start(cgBoard customBoard = null, BoardMode mode = BoardMode.Undefined)
 {
     if (customBoard == null)
     {
         if (this._abstractBoard != null)
         {
             customBoard = this._abstractBoard;
         }
         else
         {
             customBoard = new global::cgBoard();
         }
     }
     if (displayAs3d)
     {
         Camera.main.transform.localPosition = new Vector3(0, -2.28f, -12.58f);
         Quaternion newQuat = Camera.main.transform.localRotation;
         newQuat = Quaternion.Euler(-23.46f, newQuat.eulerAngles.y, newQuat.eulerAngles.z);
         Camera.main.transform.localRotation = newQuat;
     }
     //customBoard = customBoard.revertToStart();
     UnityEngine.Debug.Log("start: ");
     _squares = getSquares();
     Mode     = (mode != BoardMode.Undefined ? mode : Mode);
     _engine  = new cgEngine(searchDepthWeak, searchDepthStrong);
     setBoardTo(customBoard);
     //_abstractBoard.readBoard();
     // UnityEngine.Debug.Log(_abstractBoard.boardToString());
     if (Mode == BoardMode.PlayerVsEngine && !whiteTurnToMove)
     {
         MakeEngineMove(_abstractBoard.duplicate(), false, _engineCallback);
     }
     else if (Mode == BoardMode.EngineVsPlayer && whiteTurnToMove)
     {
         MakeEngineMove(_abstractBoard.duplicate(), true, _engineCallback);
     }
     else if (Mode == BoardMode.EngineVsEngine)
     {
         MakeEngineMove(_abstractBoard.duplicate(), true, _engineCallback);
     }
 }