static void Main(string[] args) { var pieceGenerator = new PieceGenerator(); var pieces = pieceGenerator.GeneratePieces(NR_PIECES, DIMENSION); //mediator Board board = new Board(DIMENSION, pieces); foreach (var piece in board.ChessPieces) { Console.WriteLine(piece.ToString()); } //observers var printObserver = new PrintObserver(board); printObserver.Subscribe(); var killObserver = new KillCounterObserver(board); killObserver.Subscribe(); board.Play(NR_MOVES); var black = board.GetNumberPiecesAlive(ChessPieceColor.BLACK); var white = board.GetNumberPiecesAlive(ChessPieceColor.WHITE); Console.WriteLine($" ALIVE WHITE:{white} - ALIVE BLACK {black} GG!"); Console.ReadKey(); }