-
Notifications
You must be signed in to change notification settings - Fork 0
/
TetraFactory.py
47 lines (41 loc) · 1.68 KB
/
TetraFactory.py
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
#The Tetra factory is in charge of creating new tetras.
import Tetra
import random
from random import randint
class Factory():
#__shapeList
# each tetra needs an origin point with which to sort of pin to the background
__shapeList = {
'cube': [[1,1],[1,1]],
'L': [[1,0],[1,0],[1,1]],
'backwardsL': [[0,1],[0,1],[1,1]],
'Z': [[0,1],[1,1],[1,0]],
'backwardsZ': [[1,0],[1,1],[0,1]],
'T': [[0,1,0],[1,1,1]],
'Jesus': [[1],[1],[1],[1]]
}
def newTetra(self, s = 'random'):
#generate a random shape by default
if s.lower() == 'random':
shape = random.choice(list(self.__shapeList.keys()))
else:
shape = s
#generate the given shape
if shape.lower() == 'cube':
return Tetra.Tetra(self.__shapeList['cube'], 2, 2, self.color())
elif shape.lower() == 'l':
return Tetra.Tetra(self.__shapeList['L'], 2, 3, self.color())
elif shape.lower() == 'backwardsl':
return Tetra.Tetra(self.__shapeList['backwardsL'], 2, 3, self.color())
elif shape.lower() == 'z':
return Tetra.Tetra(self.__shapeList['Z'], 2, 3, self.color())
elif shape.lower() == 'backwardsz':
return Tetra.Tetra(self.__shapeList['backwardsZ'], 2, 3, self.color())
elif shape.lower() == 't':
return Tetra.Tetra(self.__shapeList['T'], 3, 2, self.color())
elif shape.lower() == 'jesus':
return Tetra.Tetra(self.__shapeList['Jesus'], 1, 4, self.color())
else:
print('no shape generated')
def color(self):
return (randint(2,9)*25,randint(0,9)*25,randint(0,9)*25)