static void Main(string[] args) { Program p = new Program(); var p1 = new Player("Matteo"); var p2 = new PlayerMediumComputer("CPU1"); IScoreObserver observerScore1 = new Player1Scorer(); IScoreObserver observerScore2 = new Player2Scorer(); IScoreObserved tableScore = new Chessboard(); //raccoglitore mosse List <Chessboard> moveListPlayer1 = new List <Chessboard>(); List <Chessboard> moveListPlayer2 = new List <Chessboard>(); //int scorePlayer1 = 0; //int scorePlayer2 = 0; IPlayer toMove = p1; tableScore.RegisterObserver(observerScore1); tableScore.RegisterObserver(observerScore2); int xs, ys, xe, ye; var b = new Chessboard(p1, p2); do { try{ Console.Clear();// <--- screen CLEAR is here! Console.BackgroundColor = ConsoleColor.Blue; Console.WriteLine(@"Player {0} score: " + b.GetScorePlayer(1) + " <---> " + "Player {1} score: " + b.GetScorePlayer(2), p1.Name, p2.Name); Console.ResetColor(); Console.WriteLine(b.ToString()); Console.WriteLine("Turn: {0}", toMove.Name); Console.WriteLine("Let move from..."); Console.Write("V:"); char s = Console.ReadKey().KeyChar; xs = b.PositionConverter(s);//addon Console.WriteLine(); Console.Write("H:"); ys = (int)Char.GetNumericValue(Console.ReadKey().KeyChar); Console.WriteLine(); Console.WriteLine("Let move to..."); Console.Write("V:"); //xe = int.Parse(Console.ReadLine()); char s2 = Console.ReadKey().KeyChar; xe = b.PositionConverter(s2);//addon Console.WriteLine(); Console.Write("H:"); ye = (int)Char.GetNumericValue(Console.ReadKey().KeyChar); Console.WriteLine(); b.MovePawn(toMove, xs, ys, xe, ye); if (toMove == p1) { moveListPlayer1.Add(b);//salvo mosse p.moveStringPlayer1.Add("From: " + s.ToString() + " " + ys.ToString() + " To: " + s2.ToString() + " " + ye.ToString()); toMove = p2; } else { moveListPlayer2.Add(b);//salvo mosse p.moveStringPlayer2.Add("From: " + s.ToString() + " " + ys.ToString() + " To: " + s2.ToString() + " " + ye.ToString()); toMove = p1; } //<--------ESITO MOSSA OK //mock print mossa //Console.WriteLine("From: " + s.ToString() + " " + ys.ToString() + "To: " + s2.ToString() + " " + ye.ToString()); //p.PrintFinalScore(); //STAMPA ELENCO MOSSE //Console.ReadLine(); } catch (Exception e) { Console.WriteLine(e.Message); Console.WriteLine("Press to continue..."); Console.ReadLine(); } } while (b.Winner == null); //stampa elenco mosse p.PrintFinalScore(); //simulazione a fine partita - STAND BY! //Console.WriteLine("Press to simulate legal move (5,1) -> (4,2)..."); //Console.ReadLine(); //b.MovePawn(p2, 5, 1, 4, 2); //Console.WriteLine(b.ToString()); //Console.WriteLine("Press to simulate play..."); //Console.ReadLine(); //b.SimulatePlay(); //Console.WriteLine("Winner is {0} ", b.Winner.Name); //Console.WriteLine("Loser is {0} ", b.Loser.Name); Console.ReadLine(); }
static void Main(string[] args) { Console.WriteLine("Do you want to play against another player or against the computer?"); string choice; do { Console.WriteLine("Type 'G' for another player or 'C' for computers."); choice = Console.ReadLine(); if (choice == "G" || choice == "g") { var p2 = new Player("Black"); } if (choice == "C" || choice == "c") { Console.WriteLine("You chose to play against the computer. What degree of difficulty do you prefer?"); string difficulty; do { Console.WriteLine("Digita 'E' per EASY, 'M' per MEDIUM o 'H' per HARD"); difficulty = Console.ReadLine(); if (difficulty == "E" || difficulty == "e") { var p2 = new PlayerEasyComputer("Black"); } else if (difficulty == "M" || difficulty == "m") { var p2 = new PlayerMediumComputer("Black"); } else if (difficulty == "H" || difficulty == "h") { var p2 = new PlayerHardComputer("Black"); } } while (!(difficulty == "E" || difficulty == "e" || difficulty == "M" || difficulty == "m" || difficulty == "H" || difficulty == "h")); } } while (!(choice == "G" || choice == "g" || choice == "C" || choice == "c")); //Player p1 = new Player("White"); //Player p2 = new PlayerMediumComputer("Black"); var p1 = new Player("White"); IPlayer toMove = p1; int xs, ys, xe, ye; var b = new Chessboard(p1, p2); do { try { Console.Clear(); Console.WriteLine(b.ToString()); Console.WriteLine("Turn: {0}", toMove.Name); Console.WriteLine("Let move from..."); Console.Write("V:"); xs = int.Parse(Console.ReadLine()); Console.WriteLine(); Console.Write("H:"); ys = int.Parse(Console.ReadLine()); Console.WriteLine("Let move to..."); Console.Write("V:"); xe = int.Parse(Console.ReadLine()); Console.WriteLine(); Console.Write("H:"); ye = int.Parse(Console.ReadLine()); b.MovePawn(toMove, xs, ys, xe, ye); if (toMove == p1) { toMove = p2; } else { toMove = p1; } } catch (Exception e) { Console.WriteLine(e.Message); Console.WriteLine("Press to continue..."); Console.ReadLine(); } } while (b.Winner == null); Console.WriteLine("Press to simulate legal move (5,1) -> (4,2)..."); Console.ReadLine(); b.MovePawn(p2, 5, 1, 4, 2); Console.WriteLine(b.ToString()); Console.WriteLine("Press to simulate play..."); Console.ReadLine(); b.SimulatePlay(); Console.WriteLine("Winner is {0} with score {1}", b.Winner.Name, b.Winner.Score); Console.WriteLine("Loser is {0} with score {1}", b.Loser.Name, b.Loser.Score); }
static void Main(string[] args) { var p1 = new Player("Matteo"); var p2 = new PlayerMediumComputer("CPU1"); IPlayer toMove = p1; int xs, ys, xe, ye; var b = new Chessboard(p1, p2); do { try{ Console.Clear(); Console.WriteLine(b.ToString()); Console.WriteLine("Turn: {0}", toMove.Name); Console.WriteLine("Let move from..."); Console.Write("V:"); xs = int.Parse(Console.ReadLine()); Console.WriteLine(); Console.Write("H:"); ys = int.Parse(Console.ReadLine()); Console.WriteLine("Let move to..."); Console.Write("V:"); xe = int.Parse(Console.ReadLine()); Console.WriteLine(); Console.Write("H:"); ye = int.Parse(Console.ReadLine()); b.MovePawn(toMove, xs, ys, xe, ye); if (toMove == p1) { toMove = p2; } else { toMove = p1; } }catch (Exception e) { Console.WriteLine(e.Message); Console.WriteLine("Press to continue..."); Console.ReadLine(); } } while (b.Winner == null); Console.WriteLine("Press to simulate legal move (5,1) -> (4,2)..."); Console.ReadLine(); b.MovePawn(p2, 5, 1, 4, 2); Console.WriteLine(b.ToString()); Console.WriteLine("Press to simulate play..."); Console.ReadLine(); b.SimulatePlay(); Console.WriteLine("Winner is {0} with score {1}", b.Winner.Name, b.Winner.Score); Console.WriteLine("Loser is {0} with score {1}", b.Loser.Name, b.Loser.Score); }