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
|
module m_piece
implicit none
type piece
integer, dimension(0:3, 0:3)::blocks
integer::r, c
end type piece
contains
function new_piece()
use m_constants
use bgi
implicit none
type(piece)::new_piece
real::r
integer::rint
new_piece%r = ROWS-1
new_piece%c = COLUMNS/2-2
call random_number(r)
rint = floor(r*7)
new_piece%blocks = 0
select case (rint)
case (0)
new_piece%blocks(1:2,1:2) = BLUE
case (1)
new_piece%blocks(:,2) = LIGHTGREEN
case (2)
new_piece%blocks(2,1:3) = RED
new_piece%blocks(1,2) = RED
case (3)
new_piece%blocks(1,2:3) = MAGENTA
new_piece%blocks(2,1:2) = MAGENTA
case (4)
new_piece%blocks(2,2:3) = CYAN
new_piece%blocks(1,1:2) = CYAN
case (5)
new_piece%blocks(0:2,1) = GREEN
new_piece%blocks(2,2) = GREEN
case (6)
new_piece%blocks(0:2,2) = LIGHTRED
new_piece%blocks(2,1) = LIGHTRED
end select
end function
end module m_piece
|