Cleared the code from empty lines and renamed all variables and methods according to style cop requirements.
Character casing: variables and fields made camelCase; types and methods made PascalCase.
Formatted the curly braces { and } according to the best practices for the C# language.
Put { and } after all conditionals and loops (when missing).
Created OOP structure – including objects that contain valuable information, object that deal with different types of behavior needed for the application. Increased abstraction for each usable object.
Easy creation of words – WordFactory
Ensuring only one instance is available – Singleton -> ScoreBoard
Avoiding to use new operator – PlayerPrototype and LetterPrototype.
Easily increasing functionalty – Decorator pattern -> Guessed
Avoiding coupling between classes – Bridge pattern
Added DataSerialization and DataBase to deal with using of files and database information.
Eased user experience when using project – HangmanFacade
Easily iterating over object’s information – Iterator pattern - Word
Abstract communication for different result – Strategy -> ConsoleInputProvider,ConsoleRenderer and etc.
Added Unit tests to verify all active public classes work properly.
Added Validator class to deal with all validation.
Added Mocking of DataBase to provide testing capabilities.
Implemented NUnit tests for testing different scenarios.