-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathTetrominoFactory.h
58 lines (44 loc) · 1.43 KB
/
TetrominoFactory.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#ifndef __TETROMINOFACTORY_H__
#define __TETROMINOFACTORY_H__
/**
* TetrominoFactory
*
* $Revision$
* $Id$
*
* Alustaa halutun palikan, tai random-palikan älykkäällä logiikalla
* esim: http://www.tetrisconcept.com/wiki/index.php?title=TGM_randomizer
*
* TODO: älykäs logiikka palikan arpomiselle
* TODO: siivoa
*/
#include "Tetromino.h"
#include "TetrisCommon.h"
#include "Config.h"
class CTetrominoFactory {
public:
CTetrominoFactory(void);
~CTetrominoFactory(void);
// palauttaa halutun palikan
// palikan vastaanottaja vastaa sen tuhoamisesta
CTetromino* create(CELL_TYPE t);
// valitsee logiikalla seuraavan palikan ja palauttaa sen:
// return create(TETROMINO);
// palikan vastaanottaja vastaa sen tuhoamisesta
CTetromino* createRandom(void);
private:
// count luoduista palikoista
int m_creationCount;
bool m_xiitBlocks;
bool m_normBlocks;
bool m_randomBlocks;
SConfig * settings;
// tilastoa luoduista palikoista
// todo: indeksitaulukko jossa totals[TETROMINOE] = määrä
// lastlogin koko, eli montako viimeistä palikkaa otetaan huomioon arvonnassa
// (katso vaikka http://www.tetrisconcept.com/wiki/index.php?title=TGM_randomizer )
// int m_lastlogSize;
// tilastoa viimeksi luoduista palikoista
// TODO: käytä jotain palikka-painoarvo -pareja?
};
#endif // __TETROMINOFACTORY_H__