27 std::vector<fsStr> pWords);
40 struct gfSGridDirection
46 mDimensionLimit(pDimensionLimit),
47 mDimensionIndex(pDimensionIndex),
53 virtual void copyToGrid(
fsS32 pColumn,
fsS32 pRow)
const;
54 virtual fsS32 startIndexFind();
56 fsS32 dimensionLimitGet()
const {
return mDimensionLimit; }
57 fsS32 wordLengthGet()
const {
return mWord.lengthGet(); }
59 virtual void doCopyToGrid(
fsS32 pColumn,
fsS32 pRow,
fsS32 pCurrChar)
const = 0;
60 virtual fsBool legalEntry(
fsS32 pIndex)
const {
return false; }
64 const fsS32 mDimensionLimit;
65 const fsS32 mDimensionIndex;
69 struct gfSColumn :
public gfSGridDirection
73 gfSGridDirection(pParent, pMax, pIndex, pWord, pReverse)
78 void doCopyToGrid(
fsS32 pColumn,
fsS32 pRow,
fsS32 pCurrChar)
const override;
81 struct gfSRow :
public gfSGridDirection
85 gfSGridDirection(pParent, pMax, pIndex, pWord, pReverse)
90 void doCopyToGrid(
fsS32 pColumn,
fsS32 pRow,
fsS32 pCurrChar)
const override;
93 struct gfSDiagonalBLTR :
public gfSGridDirection
96 const fsStr& pWord,
fsBool pReverse):
97 gfSGridDirection(pParent, pMax, pIndex, pWord, pReverse)
102 void doCopyToGrid(
fsS32 pColumn,
fsS32 pRow,
fsS32 pCurrChar)
const override;
103 fsS32 startIndexFind()
override;
106 struct gfSDiagonalTLBR :
public gfSGridDirection
109 const fsStr& pWord,
fsBool pReverse):
110 gfSGridDirection(pParent, pMax, pIndex, pWord, pReverse)
115 void doCopyToGrid(
fsS32 pColumn,
fsS32 pRow,
fsS32 pCurrChar)
const override;
116 fsS32 startIndexFind()
override;
119 static const fsStr mPlaceHolderTile;
121 std::vector<fsS32> randommIndicesGet(
fsS32 pMaxIndex)
const;
123 fsStr randomLetterGet()
const;
124 void emptyTilesReplaceWithRandomLetter();
126 fsS32 startDiagonalBLTRColumnFindInRow(
fsS32 pRow,
const fsStr& pWord);
127 fsS32 startDiagonalTLBRColumnFindInRow(
fsS32 pRow,
const fsStr& pWord);
129 fsBool wordAddDiagonalTLBR(
const fsStr& pWord);
130 fsBool wordAddDiagonalBLTR(
const fsStr& pWord);
131 fsBool wordAddVertical(
const fsStr& pWord);
132 fsBool wordAddHorizontal(
const fsStr& pWord);
133 fsBool wordsAdd(std::vector<fsStr>& pWords);
135 void wordListSortLongestFirst(std::vector<fsStr>& pWords);
146 std::vector<fsStr> mTiles;
147 std::vector<fsStr> mWords;
fsBool generate(fsStr const &pTileSet, fsStr const &pHilight, fsPoint const &pDimensions, fsPoint const &pOffset, std::vector< fsStr > pWords)
Definition gfCWordSearchMinigameGenerateComponent.cpp:166