/// <summary> /// Shows the intro menu to the user and prompts them to set player types (and names if applicable) /// </summary> /// <returns>Array of IPlayers with a length of 2, player 1 in [0] and player 2 in [1]</returns> public static IPlayer[] SetupMenu() { IPlayer[] players = new IPlayer[2]; Console.WriteLine("Let's play Gomoku!\n**********"); int p1Type = PromptInt("Player 1 is\n1. Human\n2. Random Player\nSelect[1-2]", 1, 2); switch (p1Type) { case 1: string p1Name = PromptString("Player 1, what is your name?"); players[0] = new HumanPlayer(p1Name); break; case 2: players[0] = new RandomPlayer(); break; } int p2Type = PromptInt("Player 2 is\n1. Human\n2. Random Player\nSelect[1-2]", 1, 2); switch (p2Type) { case 1: string p2Name = PromptString("Player 2, what is your name?"); players[1] = new HumanPlayer(p2Name); break; case 2: players[1] = new RandomPlayer(); break; } return(players); }
private void AddRandomPlayer() { players[selectedIndex] = new RandomPlayer(randomNumberGenerator); playerNames[selectedIndex] = "Random Intelligence"; MoveSelectionDown(); DisplayMenu(); }
public Game(LearnPlayer learner, RandomPlayer randomerPlayer, Algorithm algorithm) { //inicializar this.algorithm = algorithm; this.learner = learner; this.randomerPlayer = randomerPlayer; }
public void TestMakerSplayerNotinDragonQueue() { //expected string SPlayer = "<splayer-nodragon>"; string colorxml = "<color>blue</color>"; SPlayer += colorxml; // (0, 1, 2, 3, 4, 5, 6, 7), id 1 // (0, 4, 1, 5, 2, 6, 3, 7), id 9 string tiles = "<tile><connect><n>0</n><n>1</n></connect><connect><n>2</n><n>3</n></connect><connect><n>4</n><n>5</n></connect><connect><n>6</n><n>7</n></connect></tile><tile><connect><n>0</n><n>4</n></connect><connect><n>1</n><n>5</n></connect><connect><n>2</n><n>6</n></connect><connect><n>3</n><n>7</n></connect></tile>"; string setoftiles = "<set>" + tiles + "</set>"; SPlayer += setoftiles; SPlayer += "</splayer-nodragon>"; XDocument expected_doc = XDocument.Parse(SPlayer); RandomPlayer jim = new RandomPlayer("jim"); Player randBlue = new Player(jim, "blue"); randBlue.AddTiletoHand(new Tile(1, new List <int> { 0, 1, 2, 3, 4, 5, 6, 7 })); randBlue.AddTiletoHand(new Tile(9, new List <int> { 0, 4, 1, 5, 2, 6, 3, 7 })); Assert.IsTrue(XNode.DeepEquals(expected_doc.FirstNode, maker.SPlayerXML(randBlue))); }
public void LongestDestinationOfTree() { var player = new RandomPlayer(); var map = new RouteMap(new[] { new Route(City.Pittsburgh, City.Raleigh, new EdgeProperties(Color.Red, 1) { Owner = player }), new Route(City.Raleigh, City.Charleston, new EdgeProperties(Color.Red, 1) { Owner = player }), new Route(City.Charleston, City.Miami, new EdgeProperties(Color.Red, 3) { Owner = player }), new Route(City.Charleston, City.Atlanta, new EdgeProperties(Color.Red, 2) { Owner = player }), }, Array.Empty <City[]>()); var result = map.LongestDestination(player); Assert.Equal(5, result.Length); }
public void Init(int left, int right, int rlevel) { PeopleConfig peopleConfig = ConfigData.GetPeopleConfig(right); if (left == 0) { switch (peopleConfig.Method) { case "common": LeftPlayer = new HumanPlayer(true); break; case "rand": LeftPlayer = new RandomPlayer(right, true, true); break; default: LeftPlayer = new AIPlayer(right, peopleConfig.Method, true, rlevel, true); break; } } else //观看比赛 { LeftPlayer = new AIPlayer(left, ConfigData.GetPeopleConfig(left).Emethod, true, rlevel, false); } switch (peopleConfig.Emethod) { case "common": RightPlayer = new HumanPlayer(false); RightPlayer.PeopleId = right; break; case "rand": RightPlayer = new RandomPlayer(right, false, false); break; case "mirror": RightPlayer = new MirrorPlayer(right, LeftPlayer.Cards, false); break; default: RightPlayer = new AIPlayer(right, peopleConfig.Emethod, false, rlevel, false); break; } }
public void Initialize() { server = new Server(); randomPlayer = new RandomPlayer("jim"); leastSymmetricPlayer = new LeastSymmetricPlayer("reggie"); mostSymmetricPlayer = new MostSymmetricPlayer("michael"); //randBlue = new PlayerProxy(randomPlayer, "blue", 9999); //mostsymRed = new PlayerProxy(mostSymmetricPlayer, "red", 9999); //leastsymRed = new PlayerProxy(leastSymmetricPlayer, "red", 9999); tiles = new List <Tile> { new Tile(1, new List <int> { 0, 1, 2, 3, 4, 5, 6, 7 }), new Tile(2, new List <int> { 0, 1, 2, 4, 3, 6, 5, 7 }), new Tile(3, new List <int> { 0, 6, 1, 5, 2, 4, 3, 7 }), new Tile(4, new List <int> { 0, 5, 1, 4, 2, 7, 3, 6 }), new Tile(5, new List <int> { 0, 2, 1, 4, 3, 7, 5, 6 }), }; }
public void Start(int defaultPlayers) { var humanPlayer = new ConsolePlayer("Rupert"); _game = new GameFactory().Create(humanPlayer); _game.NewPhase += game_NewPhase; _game.PlayerInputRequired += game_PlayerInputRequired; _game.Open(humanPlayer); var playerCount = defaultPlayers; for (; ;) { Console.WriteLine("How many computer players ({0})?", playerCount); var entered = Console.ReadLine(); if (string.IsNullOrEmpty(entered)) { break; } if (Int32.TryParse(entered, out playerCount)) { break; } } for (var i = 0; i < playerCount; i++) { var newPlayer = new RandomPlayer(i + 1); _game.Join(newPlayer); } _game.Start(humanPlayer); }
static void RandomPlayerTest() { //Set up random players var player1 = new RandomPlayer(); var player2 = new RandomPlayer(); var player3 = new RandomPlayer(); var player4 = new RandomPlayer(); var points = new int[4]; //Set up game var game = new HeartsGame(); //Add the players game.Players.AddRange(new[] { player1, player2, player3, player4 }); for (int i = 0; i < 1000000; ++i) { game.PlayRound(); for (int j = 0; j < 4; ++j) { points[j] = game.Players[j].Points; } game.Reset(); } Console.WriteLine($"Player1: {points[0]}"); Console.WriteLine($"Player2: {points[1]}"); Console.WriteLine($"Player3: {points[2]}"); Console.WriteLine($"Player4: {points[3]}"); Console.ReadLine(); }
public GameForm() { InitializeComponent(); _randomPlayer = new RandomPlayer(); _optimalPlayer = new OptimalPlayer(SquareTypes.O); _neatPlayer = new NeatPlayer(null, SquareTypes.O); _aiSquareType = SquareTypes.O; _humanSquareType = SquareTypes.X; _game = new TicTacToeGame(); // Set the AI to the random player by default. _ai = _randomPlayer; // Experiment classes encapsulate much of the nuts and bolts of setting up a NEAT search. _experiment = new TicTacToeExperiment(); _hyperNeatExperiment = new TicTacToeHyperNeatExperiment(); // Load config XML for the NEAT experiment. XmlDocument xmlConfig = new XmlDocument(); xmlConfig.Load("tictactoe.config.xml"); _experiment.Initialize("TicTacToe", xmlConfig.DocumentElement); // Load config XML for the HyperNEAT experiment. xmlConfig = new XmlDocument(); xmlConfig.Load("hyperneat.config.xml"); _hyperNeatExperiment.Initialize("TicTacToe", xmlConfig.DocumentElement); }
public void TestLegalPlayCheckLastPossibleMoveNotUndone() { RandomPlayer p1 = new RandomPlayer("john"); server.AddPlayer(p1, "blue"); Tile testTile1 = new Tile(1, new List <int>(8) { 0, 1, 2, 3, 4, 5, 6, 7, }); Tile testTile2 = new Tile(2, new List <int>(8) { 0, 1, 2, 3, 4, 5, 6, 7, }); Tile testTile3 = new Tile(3, new List <int>(8) { 0, 5, 1, 4, 2, 7, 3, 6, }); Player p_1 = server.alive[0]; server.board.AddPlayerToken("blue", new Position(4, 6, 0)); p_1.Hand = new List <Tile> { testTile1, testTile2, testTile3 }; server.gameState = Server.State.loop; Boolean legalPlay = server.LegalPlay(p_1, server.board, testTile1); Assert.IsFalse(legalPlay); Assert.AreEqual(3, p_1.Hand.Count); for (int i = 1; i < 4; i++) { Assert.AreEqual(i, p_1.Hand[i - 1].id); } }
public void TestIllegalPlayTileNotInHand() { RandomPlayer mp1 = new RandomPlayer("jim"); server.AddPlayer(mp1, "blue"); Tile testTile1 = new Tile(1, new List <int>(8) { 0, 1, 2, 3, 4, 5, 6, 7, }); Tile testTile2 = new Tile(2, new List <int>(8) { 0, 1, 2, 3, 4, 7, 6, 5, }); Tile testTile3 = new Tile(3, new List <int>(8) { 0, 5, 1, 4, 2, 7, 3, 6, }); Tile otherTile = new Tile(4, new List <int>(8) { 1, 2, 3, 4, 5, 6, 7, 0 }); Player p1 = server.alive[0]; var origClass = p1.iplayer.GetType(); server.gameState = Server.State.loop; bool legalPlay = server.LegalPlay(p1, server.board, otherTile); Assert.IsFalse(legalPlay); }
public void Initialize() { server = new Server(); rplayer = new RandomPlayer("jim"); lplayer = new LeastSymmetricPlayer("reggie"); mplayer = new MostSymmetricPlayer("michael"); randBlue = new Player(rplayer, "blue"); tiles = new List <Tile> { new Tile(1, new List <int> { 0, 1, 2, 3, 4, 5, 6, 7 }), new Tile(2, new List <int> { 0, 1, 2, 4, 3, 6, 5, 7 }), new Tile(3, new List <int> { 0, 6, 1, 5, 2, 4, 3, 7 }), new Tile(4, new List <int> { 0, 5, 1, 4, 2, 7, 3, 6 }), new Tile(5, new List <int> { 0, 2, 1, 4, 3, 7, 5, 6 }), }; }
public static DefaultPlayer CreatePlayer() { var random = new Random(); PlayerId++; DefaultPlayer newPlayer = null; switch (random.Next(1, 5)) { case 1: newPlayer = new CheaterPlayer(PlayerNameGenerator.GetNextPlayerName(), PlayerId); break; case 2: newPlayer = new MemoryPlayer(PlayerNameGenerator.GetNextPlayerName(), PlayerId); break; case 3: newPlayer = new RandomPlayer(PlayerNameGenerator.GetNextPlayerName(), PlayerId); break; case 4: newPlayer = new ThoroughCheaterPlayer(PlayerNameGenerator.GetNextPlayerName(), PlayerId); break; case 5: newPlayer = new ThoroughPlayer(PlayerNameGenerator.GetNextPlayerName(), PlayerId); break; } _playersList.Add(newPlayer); return(newPlayer); }
public void TestGetRoshamboRandom() { RandomPlayer random = new RandomPlayer(); RoshamboV RoshamboRandom = random.GetRoshambo(); Assert.IsInstanceOfType(RoshamboRandom, typeof(RoshamboV)); }
void AddTwoPlayers() { LeastSymmetricPlayer p1 = new LeastSymmetricPlayer("john"); RandomPlayer p2 = new RandomPlayer("john"); server.AddPlayer(p1, "blue"); server.AddPlayer(p2, "green"); }
public void MakeNames() { for (int i = 0; i < 100; i++) { RandomPlayer player = new RandomPlayer(); Console.WriteLine(player.Name); } }
public void TestConstructorRandomPlayer() { for (int i = 0; i < Constants.colors.Count; i++) { RandomPlayer player = new RandomPlayer("john"); Player p = new Player(player, Constants.colors[i]); } }
public void TestInvalidColor() { AddThreePlayers(); RandomPlayer mPlayer = new RandomPlayer("john"); server.AddPlayer(mPlayer, "not blue"); }
public void TestDuplicateColor() { AddThreePlayers(); RandomPlayer mPlayer = new RandomPlayer("harry"); server.AddPlayer(mPlayer, "blue"); }
private void InitPlayers() { Gamers = new Player[2]; Gamers[0] = new RandomPlayer(ECultures.DALRIONS, this); Gamers[1] = new MonteCarloTreeSearch(ECultures.RAHKARS, new OMCSelection(), new BestOfAllSimulation(), this); CurPlayer = Gamers[0]; Gamers[1].SetCursor(new Coord(BoardConsts.MAX_LIN - 2, BoardConsts.MAX_COL - 2)); }
public void TestMakerListofSplayer() { string SPlayer = "<splayer-nodragon>"; string colorxml = "<color>blue</color>"; SPlayer += colorxml; // (0, 1, 2, 3, 4, 5, 6, 7), id 1 // (0, 4, 1, 5, 2, 6, 3, 7), id 9 string tiles = "<tile><connect><n>0</n><n>1</n></connect><connect><n>2</n><n>3</n></connect><connect><n>4</n><n>5</n></connect><connect><n>6</n><n>7</n></connect></tile><tile><connect><n>0</n><n>4</n></connect><connect><n>1</n><n>5</n></connect><connect><n>2</n><n>6</n></connect><connect><n>3</n><n>7</n></connect></tile>"; string setoftiles = "<set>" + tiles + "</set>"; SPlayer += setoftiles; SPlayer += "</splayer-nodragon>"; string DragonSPlayer = "<splayer-dragon>"; string dragcolorxml = "<color>red</color>"; DragonSPlayer += dragcolorxml; // (0, 1, 2, 3, 4, 5, 6, 7), id 1 // (0, 4, 1, 5, 2, 6, 3, 7), id 9 string dragtiles = "<tile><connect><n>0</n><n>1</n></connect><connect><n>2</n><n>3</n></connect><connect><n>4</n><n>5</n></connect><connect><n>6</n><n>7</n></connect></tile><tile><connect><n>0</n><n>4</n></connect><connect><n>1</n><n>5</n></connect><connect><n>2</n><n>6</n></connect><connect><n>3</n><n>7</n></connect></tile>"; string dragsetoftiles = "<set>" + dragtiles + "</set>"; DragonSPlayer += dragsetoftiles; DragonSPlayer += "</splayer-dragon>"; string ListofSPlayer = "<list>" + SPlayer + DragonSPlayer + "</list>"; XDocument expected_doc = XDocument.Parse(ListofSPlayer); // make list of splayers RandomPlayer jim = new RandomPlayer("jim"); Player randBlue = new Player(jim, "blue"); randBlue.AddTiletoHand(new Tile(1, new List <int> { 0, 1, 2, 3, 4, 5, 6, 7 })); randBlue.AddTiletoHand(new Tile(9, new List <int> { 0, 4, 1, 5, 2, 6, 3, 7 })); RandomPlayer bob = new RandomPlayer("bob"); Player randred = new Player(jim, "red"); randred.AddTiletoHand(new Tile(1, new List <int> { 0, 1, 2, 3, 4, 5, 6, 7 })); randred.AddTiletoHand(new Tile(9, new List <int> { 0, 4, 1, 5, 2, 6, 3, 7 })); List <(Player, Boolean)> listofSPlayer = new List <(Player, Boolean)> { (randBlue, false), (randred, true) }; Assert.IsTrue(XNode.DeepEquals(expected_doc.FirstNode, maker.ListofSPlayersXML(listofSPlayer))); }
public void TestReplacePlayer() { RandomPlayer mPlayer1 = new RandomPlayer("john"); LeastSymmetricPlayer replacement = new LeastSymmetricPlayer("adam"); Player player = new Player(mPlayer1, "blue"); player.ReplaceMPlayer(replacement); Assert.AreEqual("adam", player.iplayer.GetName()); }
void AddThreePlayers() { RandomPlayer p1 = new RandomPlayer("blue"); RandomPlayer p2 = new RandomPlayer("green"); RandomPlayer p3 = new RandomPlayer("hotpink"); server.AddPlayer(p1, "blue"); server.AddPlayer(p2, "green"); server.AddPlayer(p3, "hotpink"); }
public void Elaborazione_SideA_ReturnRandomNumBetween0And5() { IAIPlayer player = new RandomPlayer(); player.LatoPlayer = Lato.A; int i = player.Elaborazione(null); Assert.GreaterOrEqual(i, 0); Assert.GreaterOrEqual(5, i); }
public void ShouldPlayRandomCardFromHand() { var player = new RandomPlayer(); player.Hand.Add(CardType.Blue); var board = new GameBoard(2); var play = player.FormulatePlay(board); Assert.AreEqual(CardType.Blue, play.Card); Assert.AreEqual(0, play.Position); }
public void Elaborazione_SideB_ReturnRandomNumBetween7And12() { IAIPlayer player = new RandomPlayer(); player.LatoPlayer = Lato.B; int i = player.Elaborazione(null); Assert.GreaterOrEqual(i, 7); Assert.GreaterOrEqual(12, i); }
static void Main(string[] args) { IPlayer playerOne = new RandomPlayer(ConnectFourGame.PlayerOneGamePiece); IPlayer playerTwo = new RandomPlayer(ConnectFourGame.PlayerTwoGamePiece); ConnectFourGame game = new ConnectFourGame(playerOne, playerTwo); game.PlayGame(true); Console.WriteLine("Press any key to exit..."); Console.ReadKey(); }
void AddFourPlayers() { RandomPlayer p1 = new RandomPlayer("blue"); RandomPlayer p2 = new RandomPlayer("green"); RandomPlayer p3 = new RandomPlayer("red"); RandomPlayer p4 = new RandomPlayer("hotpink"); server.AddPlayer(p1, "blue"); server.AddPlayer(p2, "green"); server.AddPlayer(p3, "red"); server.AddPlayer(p4, "hotpink"); }
protected override void OnConnected(Client client) { var state = new GameState(); var me = new RandomPlayer(Name, state); var driver= new GameDriver(me, state, client); while (driver.Dispatch(client.ReadLine())) ; Console.WriteLine(); Console.WriteLine("Press Enter to exit..."); Console.ReadLine(); }
public void PrevDiagsTest() { var player = new RandomPlayer(); var map = new RouteMap(RouteFactory.Routes, CityFactory.CityLayout); Assert.True(map.RoutesFrom(City.Helena, map.PrevDiags(City.Helena)).Single().IsAdjacent(City.SaltLakeCity)); //new[] { City.Vancouver, City.Calgary, City.Winnipeg, City.SaultSteMarie, City.Montreal, City.Boston }, //new[] { City.Seattle, City.Helena, City.Duluth, City.Chicago, City.Toronto, City.NewYorkCity }, //new[] { City.Portland, City.Omaha, City.KansasCity, City.SaintLouis, City.Pittsburgh, City.WashingtonDc }, //new[] { City.SaltLakeCity, City.Denver, City.OklahomaCity, City.LittleRock, City.Nashville, City.Raleigh }, //new[] { City.SanFranscisco, City.LasVegas, City.SantaFe, City.Dallas, City.Atlanta, City.Charleston }, //new[] { City.LosAngeles, City.Phoenix, City.ElPaso, City.Houston, City.NewOrelans, City.Miami } }
private static void RunGame() { Process p = StartAiPlayer(); string line = p.StandardOutput.ReadLine(); DisplayMessageGreen(string.Format("running player: {0}", line)); string config = string.Format("{0} {1} {2} 0 {3}", Game.ROWS, Game.COLUMNS, Game.PIECES_TO_WIN, Game.TIME_LIMIT); DisplayMessageGreen(string.Format("game config: {0}", config)); p.StandardInput.WriteLine(config); Game game = new Game(); GameEvaluator evaluator = new GameEvaluator(); RandomPlayer player2 = new RandomPlayer(); GameStates gameState = GameStates.InProgress; while (gameState == GameStates.InProgress) { // read the move from player line = p.StandardOutput.ReadLine(); DisplayMessageGreen(string.Format("move from player: {0}", line)); // tie the move to the game state and evaluate game.AcceptMove(Game.ME, int.Parse(line.Trim())); gameState = evaluator.EvaluateGame(game); if (gameState != GameStates.InProgress) { HandleEndGame(gameState, p); break; } // get random player's move int move2 = player2.GetMove(game); game.AcceptMove(Game.OPPONENT, move2); gameState = evaluator.EvaluateGame(game); if (gameState != GameStates.InProgress) { HandleEndGame(gameState, p); break; } DisplayMessageGreen(string.Format("sending move: {0}", move2)); p.StandardInput.WriteLine(move2); } p.WaitForExit(); }
private void SetPlayersNamesAndTypes(int numberOfPlayers) { Console.WriteLine("Enter players \"Name\" and choose players types"); Console.WriteLine("Player types are:"); Console.WriteLine("1. Random player"); Console.WriteLine("2. Memory player"); Console.WriteLine("3. Thorough player"); Console.WriteLine("4. Cheater player"); Console.WriteLine("5. Thorough Cheater player"); for (int i = 0; i < numberOfPlayers; i++) { bool isCorrectPlayerInput = false; while (!isCorrectPlayerInput) { try { Console.Write("Enter Player {0} name: ", i + 1); string name = Console.ReadLine(); Console.Write("Choose type for player {0} [1 to 5]: ", i + 1); int playerTypeInput = int.Parse(Console.ReadLine()); if (playerTypeInput < 1 || 5 < playerTypeInput) { throw new FormatException("Player type must be between 1 and 5!"); } switch (playerTypeInput) { case 1: { RandomPlayer newPlayer = new RandomPlayer(name, new CustomRandom()); this.players.Add(newPlayer); break; } case 2: { MemoryPlayer newPlayer = new MemoryPlayer(name, new CustomRandom()); this.players.Add(newPlayer); break; } case 3: { ThoroughPlayer newPlayer = new ThoroughPlayer(name); this.players.Add(newPlayer); break; } case 4: { CheaterPlayer newPlayer = new CheaterPlayer(name, new CustomRandom()); this.players.Add(newPlayer); break; } case 5: { ThoroughCheaterPlayer newPlayer = new ThoroughCheaterPlayer(name); this.players.Add(newPlayer); break; } default: break; } isCorrectPlayerInput = true; } catch (FormatException ex) { Console.WriteLine(ex.Message); } catch (ArgumentNullException ex) { Console.WriteLine(ex.Message); } } } }