public void SetSquareTarget(GameObject gameObject, SquareTypes _sqType, GameObject prefabLink) { if (_sqType.ToString().Contains(target.name)) { var subTargetContainer = subTargetsContainers.FirstOrDefault(i => _sqType.ToString().Contains(i.targetPrefab.name)); if (subTargetContainer == null) { Debug.LogError("Check Target Editor for " + _sqType); } subTargetContainer.changeCount(1); gameObject.AddComponent <TargetComponent>(); } }
private static void PlayVSHuman() { int inputCount = 9; int outputCount = 9; int depth = 3; int hiddenNeuronsPerLayer = 5; TicTacToeGame game = new TicTacToeGame(); NeuralPlayer champion = MakeNeuralPlayer(inputCount, outputCount, depth, hiddenNeuronsPerLayer, new DNA(bestDNA)); champion.SquareType = SquareTypes.X; SquareTypes winner = SquareTypes.N; for (int moveNum = 0; moveNum < 9 && winner == SquareTypes.N; moveNum++) { Console.WriteLine($"+- Turn {moveNum + 1} -+"); TicTacToeGame.DisplayBoard(game.Board); SquareTypes curSquareType; Move move; if (moveNum % 2 == 1) { curSquareType = SquareTypes.O; move = AskHumanForMove(); } else { curSquareType = SquareTypes.X; move = champion.GetMove(game.Board); } if (game.IsEmpty(move.X, move.Y)) { game.Board[move.X, move.Y] = curSquareType; } else { Console.WriteLine($"Player {curSquareType.ToString()} tried to use non-empty space [{move.X}, {move.Y}]"); } if (moveNum > 3) { winner = game.GetWinner(); } } Console.WriteLine($"The winner is {winner.ToString()}"); }