コード例 #1
0
ファイル: Test.cs プロジェクト: sumi995/TicTacToe
        public void CheckSettingValueWorks()
        {
            var coord = new Tuple <int, int>(1, 1);

            _grid[1, 1] = CrossDots.O;
            var populatedCoord = _grid.GetPopulatedCoord();

            Assert.AreEqual(_grid[coord.Item1, coord.Item2], CrossDots.O);
            Assert.AreEqual(populatedCoord.Count, 1);
            Assert.AreEqual(populatedCoord[0], coord);
        }
コード例 #2
0
ファイル: Game.cs プロジェクト: sumi995/TicTacToe
        public void Play()
        {
            Console.WriteLine("Player1: O");
            Console.WriteLine("Player2: X");
            Console.WriteLine("Player1 goes first");
            _currentIsPlayer1 = true;
            while (true)
            {
                var currentPlayerName = _currentIsPlayer1 ? "player1" : "player2";
                var currentPlayer     = _currentIsPlayer1 ? player1 : player2;
                Tuple <int, int> coord;
                while (true)
                {
                    var populatedCoords = _grid.GetPopulatedCoord();

                    Console.WriteLine($"{currentPlayerName}, choose your coordinates");
                    var coordinates = Console.ReadLine();
                    coordinates = coordinates.Trim();
                    var twoCoord = coordinates.Split(new char[] { ',', ' ' });
                    if (twoCoord.Length != 2)
                    {
                        continue;
                    }
                    try
                    {
                        int row    = int.Parse(twoCoord[0]);
                        int column = int.Parse(twoCoord[1]);
                        coord = new Tuple <int, int>(row, column);

                        if (populatedCoords.Contains(coord))
                        {
                            Console.WriteLine($"Coordinates {coord} is already taken.");
                            continue;
                        }
                    }
                    catch (FormatException) { continue; }
                    break;
                }

                _grid[coord.Item1, coord.Item2] = currentPlayer;
                _currentIsPlayer1 = !_currentIsPlayer1;
            }
        }