From d489848bab395aea447bf6fe462f7c4f603dee1a Mon Sep 17 00:00:00 2001 From: angeld55 Date: Sat, 12 Jun 2021 17:01:20 +0300 Subject: sem 16 --- Sem. 15/Chess/FigureFactory/FigureFactory.cpp | 43 +++++++++++---------------- Sem. 15/Chess/FigureFactory/FigureFactory.h | 8 ++--- 2 files changed, 19 insertions(+), 32 deletions(-) (limited to 'Sem. 15/Chess/FigureFactory') diff --git a/Sem. 15/Chess/FigureFactory/FigureFactory.cpp b/Sem. 15/Chess/FigureFactory/FigureFactory.cpp index db70d1e..e9db605 100644 --- a/Sem. 15/Chess/FigureFactory/FigureFactory.cpp +++ b/Sem. 15/Chess/FigureFactory/FigureFactory.cpp @@ -6,31 +6,22 @@ #include "../Figures/Queen/Queen.h" #include "../Figures/Pawn/Pawn.h" -Figure* FigureFactory::createPawn(bool isWhite) +Figure* FigureFactory::createFigure(bool isWhite, FigureType type) { - return new Pawn(isWhite); -} -Figure* FigureFactory::createBishop(bool isWhite) -{ - return new Bishop(isWhite); -} -Figure* FigureFactory::createRook(bool isWhite) -{ - return new Rook(isWhite); -} -Figure* createQueen(bool isWhite) -{ - return new Queen(isWhite); -} -Figure* FigureFactory::createKnight(bool isWhite) -{ - return new Knight(isWhite); -} -Figure* FigureFactory::createKnig(bool isWhite) -{ - return new King(isWhite); -} -Figure* FigureFactory::createQueen(bool isWhite) -{ - return new Queen(isWhite); + + switch (type) + { + case KingFigure: + return new King(isWhite); + case QueenFigure: + return new Queen(isWhite); + case KnightFigure: + return new Knight(isWhite); + case BishopFigure: + return new Bishop(isWhite); + case PawnFigure: + return new Pawn(isWhite); + case RookFigure: + return new Rook(isWhite); + } } \ No newline at end of file diff --git a/Sem. 15/Chess/FigureFactory/FigureFactory.h b/Sem. 15/Chess/FigureFactory/FigureFactory.h index da5b4db..012a60c 100644 --- a/Sem. 15/Chess/FigureFactory/FigureFactory.h +++ b/Sem. 15/Chess/FigureFactory/FigureFactory.h @@ -1,13 +1,9 @@ #pragma once #include "../Figures/FigureBase/Figure.h" +#include "../ConfigEnums/ConfigEnums.h" class FigureFactory { public: - Figure* createPawn(bool isWhite); - Figure* createBishop(bool isWhite); - Figure* createRook(bool isWhite); - Figure* createQueen(bool isWhite); - Figure* createKnight(bool isWhite); - Figure* createKnig(bool isWhite); + static Figure* createFigure(bool isWhite, FigureType); //enum }; \ No newline at end of file -- cgit v1.3.1-23-gd82d