Exemplo n.º 1
0
        static void Main(string[] args)
        {
            /* Un progetto Console permette di giocare a Tria.
             * Creare una classe `TriaGame` per gestire l'interazione tra i giocatori e il calcolo del vincitore.
             * Questa classe accetta all'inizio due istanze di `IPlayer`. Questa interfaccia definisce solo la
             * scelta di una casella libera, avendo in input la matrice del gioco.
             * A implementare questa interfaccia sono due classi:
             * - `PersonPlayer`, che rappresenta un giocatore reale; in questo caso quale casella scegliere viene
             * chiesto all'utente in `Console`;
             * - `ComputerPlayer`, che invece sceglie una casella libera a caso.
             * Nel `Main()` istanziare i due player e il gioco, e far partire il gioco.
             * Ad ogni mossa fatta da uno dei due giocatori, ristampare in Console la situazione corrente del gioco.
             * Il `TriaGame`, ad ogni turno del giocatore, a fine mossa deve controllare se c'è una tria fatta, in
             * quel caso deve interrompere il gioco e stampare il nome del vincitore.
             */

            TriaGame game = new TriaGame();

            PersonPlayer p1 = new PersonPlayer("Gino", "x");
            PersonPlayer p2 = new PersonPlayer("Toni", "o");

            game.StartGame(p1, p2);

            Console.Read();
        }
Exemplo n.º 2
0
        public void StartGame(PersonPlayer p1, PersonPlayer p2)
        {
            List <List <string> > board = new List <List <string> >();

            board = CreateNewBoard(board);


            int round = 1;

            while (true)
            {
                Console.WriteLine($"ROUND {round}");

                Console.WriteLine($"E' il turno di {p1.Name}:");

                List <int> coordinatesp1 = p1.ValidChoice(board);

                board[coordinatesp1[0]][coordinatesp1[1]] = p1.Sign;

                PrintList(board);

                bool p1Wins = SomeOneWin(board);
                if (p1Wins)
                {
                    Console.WriteLine($"{p1.Name}: 'HO VINTOOO!'");
                    break;
                }

                Console.WriteLine($"E' il turno di {p2.Name}:");

                List <int> coordinatesp2 = p2.ValidChoice(board);

                board[coordinatesp2[0]][coordinatesp2[1]] = p2.Sign;

                PrintList(board);

                bool p2Wins = SomeOneWin(board);
                if (p2Wins)
                {
                    Console.WriteLine($"{p2.Name}: 'HO VINTOOO!'");
                }

                round++;
                if (round == 10 && p1Wins == p2Wins)
                {
                    Console.WriteLine("GAME OVER, NO ONE WIN...");
                    break;
                }
            }
        }