A sliding puzzle game.This is our teamwork project for the High Quality Code course @ TelerikAcademy.
- Rename IfOutOfMAtrix to IsOutOfMatrix.
- Rename IfEqualMatrix to IsEqualMatrix.
- Rename IfGoesToBoard to IsGoseOnBoard.
- Rename tocki to Points.
- Rename pe4at to Print.
- Remove comment // pozdravi na vsi4ki ot pernik!
- Removed all unneeded empty lines,in the methods: GenerateMatrix,IsOutOfMatrix,MoveEmptyCell,PrintMatrix, IsEqualMatrix,Print,ExecuteComand.
- Inserted empty lines between the methods.
- Make methods GenerateMatrix, PrintMatrix, PrintWelcome, MainAlgorithm internal.
- Make constant MatrixLength private.
- Add constant HorizontalBorder and VerticalBorder.
- Make class MainGameFifteen and move Main method in it.
- Intruduce static class Constants
- Renamed solution and project name
- Introduced GameFifteen.UI.Console project
- Changed the type of GameFifteen.Logic project to class library and deleted the MainGameFifteen class from it
- Moved the logic to GameFifteen.Logic folder
- Moved static field Random randomNumber to local variable in GenerateMatrix method
- Changed the solution platform to 'Any CPU' to avoid the warning for possible platform incompatibility
- Removed unnecessary for loops in GenerateMatrix method
- Renamed method GenerateMatrix to ShuffleMatrix
- Moved the calling of ShuffleMatrix, PrintWelcome and PrintMatrix to MainAlgorithm
- Moved static field scoreboard to MainAlgorithm
- Introduced Engine class
- Moved logic of MainAlgorithm to Engine.Run method
- Intruduced IPrinter, Printer and Validator
- Introduced IReader and Reader
- Removed PrintMatrix method
- Inlined ExecuteComand method in Engine.Run, still needs refactoring
- System.Console dependency removed from Engine
- Extracted Scoreboard class, needs refactoring
- Refactor Scoreboard
- Refactor Scoreboard
- Create folder Tiles
- Create folder Contracts
- Create interface ITile
- Implement interface ITile with abstract class Tile
- Create abstract class TileFactory
- Create class Converter
- Add method ValidateIsPositiveInteger to Validator.cs
- Create class LettersTile
- Create class NumberTile
- Create folder Frames
- Create folder Contracts
- Introduced interface IFrame
- Introduced class Frame implementind interface IFrame
- Introduced class FrameBuilder
- Introduced frame builders
- Introduced class FrameDirector
- Introduced class NullTile
- Moved common logic to ToString in Tile class
- Integrating Game with frames.
- Changed some magic numbers in Engine.
- Introduced IMover interface, Mover abstract class and RowsColsMover class
- Added Clone method to IFrame
- Implemented IMover in Game class
- Game class moved to Games folder and implements IGame
- Holding of instance of Scoreboard moved to Game (as public property)
- Introduced interfaces ICommand, ICommandManager, ICommandContext
- Implemented classes for each command
- Executing of commands moved in CommandManager. Implemented ICommand pattern
- Introduced WPF UI Application
- UI.WPF - Introduced RelayCommand class
- UI.WPF - Introduced ISwitchable interface, Helpers - ViewSwitcher (yet static class); MainWindol.xaml.cs - added methods to navigate with ViewSwitcher
- UI.WPF - Introduced ViewModelBase class
- UI.WPF - Introduced Viewes and ViewModels -PreGameViewModel class, PreGameView xaml UserController; Helpers - ViewSelector class
- UI.WPF - Introduced ClassicGameView xaml
- UI.WPF - ClassicGameViewModel class added (yet empty); Icommand switchViewCommand extracted to ViewModelBase; some xaml views changes
- Finished refactoring in Logic for now
- Moved IPrinter back to UI.Console project
- Created ClassicMover
- IGame added public get properties IFrame Freame and IFrame FramePrototype; class Game implemented IGame new properties