/// <summary>Prompts a human player to be Xs or Os.</summary> /// <param name="a"></param> private void ChooseSides(CircularList a) { char c; do { Console.Write("Do you want to start as Xs or Os? "); c = Char.ToLower(Convert.ToChar(Console.ReadLine())); } while (c != 'x' && c != 'o'); if (c == 'o') { Human hum = new Human(Piece.PieceValue.O); hum.MoveMethod = new Player.ChooseMove(Game.PromptForMove); Computer comp = new Computer(Piece.PieceValue.X); // insert into the player's list a.Add(hum); a.Add(comp); } else { Computer comp = new Computer(Piece.PieceValue.O); Human hum = new Human(Piece.PieceValue.X); hum.MoveMethod = new Player.ChooseMove(Game.PromptForMove); // insert into the player's list a.Add(comp); a.Add(hum); } }
/// <summary>Creates a new instance of a circular list enumerator.</summary> public CircularListEnumerator(CircularList l) { // create an internal reference to the list to operate on this.list = l; // init the counter this.idx = -1; // back the marker up one item //this.list.marker = this.list.marker.Previous; }
/// <summary>Initializes the players array.</summary> /// <param name="a"></param> private void InitPlayers(CircularList a) { byte n = 0; do { Console.Write("How many human players [0|1|2]? "); n = Convert.ToByte(Console.ReadLine()); } while (n < 0 || n > 2); switch (n) { case 1: this.ChooseSides(a); break; case 2: // create human players Human human1 = new Human(Piece.PieceValue.O); human1.MoveMethod = new Player.ChooseMove(Game.PromptForMove); Human human2 = new Human(Piece.PieceValue.X); human2.MoveMethod = new Player.ChooseMove(Game.PromptForMove); // insert into the player's list a.Add(human1); a.Add(human2); break; case 0: default: // create computer players Computer comp1 = new Computer(Piece.PieceValue.O); Computer comp2 = new Computer(Piece.PieceValue.X); // set their skill level // insert into the player's list a.Add(comp1); a.Add(comp2); break; } }