Website Summary Files Commits Branches @commit @diff @stats
path: root / Sem. 15 / Chess / FigureFactory
diff options
context:
space:
mode:
Commitd489848bab395aea447bf6fe462f7c4f603dee1a (patch)
Author
 angeld55 <angel_dimitriev@abv.bg>
2021-06-12 17:01:20 +0300
Committer
 angeld55 <angel_dimitriev@abv.bg>
2021-06-12 17:01:20 +0300
Files1bf68497f483098888dc1f94eadbf1d50894569a /Sem. 15/Chess/FigureFactory
Object-oriented_programming_FMI-d489848bab395aea447bf6fe462f7c4f603dee1a.tar
Object-oriented_programming_FMI-d489848bab395aea447bf6fe462f7c4f603dee1a.tar.gz
Object-oriented_programming_FMI-d489848bab395aea447bf6fe462f7c4f603dee1a.zip
Parentd060147c32ecebaecb31cf5a93aae75318dc7ca6 (diff)
sem 16
2 files changed, 19 insertions, 32 deletions
-rw-r--r--Sem. 15/Chess/FigureFactory/FigureFactory.cpp43
-rw-r--r--Sem. 15/Chess/FigureFactory/FigureFactory.h8
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