public virtual void InitData(ChessData data, UChessboard board) { this.name = data.name; this.campType = data.campType; this.point = data.point; this.prefab = data.prefab; this.chessType = data.chessType; _chessboard = board; }
// Use this for initialization void Start() { //UI UIEventListener.Get(BtnStart.gameObject).onClick = OnClickStart; UIEventListener.Get(BtnStop.gameObject).onClick = OnClickStop; if (LoadWeights) { try { LoadGenFromFile(); } catch (Exception E) { Debug.Log("Load Gen Failed " + E.Message); LoadWeights = false; } } if (!LoadWeights) { UGenAlg.ConfigData Config = new UGenAlg.ConfigData(); Config.PopSize = 3000; Config.NumWeights = new UBotAIController().Net.GetWeightCount(); Gen = new UGenAlg(); Gen.Init(Config); } //更新适应性分数代理 Gen.onUpdateFitnessScores = UpdateFitnessScores; BoardList = new List <UChessboard>(); ChessBoardPrefab.learn = true; ChessBoardPrefab.gameObject.SetActive(showFirstChessboard); ChessBoardPrefab.InitStart(); BoardList.Add(ChessBoardPrefab); //创建其他棋盘 for (int i = 1; i < Gen.Config.PopSize / 2; i++) { UChessboard board = GameObject.Instantiate <GameObject>(ChessBoardPrefab.gameObject).GetComponent <UChessboard>(); board.learn = true; //board.show = false; board.gameObject.SetActive(false); board.InitStart(); BoardList.Add(board); } //将加载的适应性分数保存 if (LoadWeights) { PutFitnessScores(); } }