-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathBlockQueue.cs
More file actions
56 lines (28 loc) · 1.47 KB
/
Copy pathBlockQueue.cs
File metadata and controls
56 lines (28 loc) · 1.47 KB
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
namespace Tetris_2._0 {
public class BlockQueue { // aceasta clasa are rolul sa aleaga ce block sa fie introdus in joc
private readonly Block[] blocks = new Block[] { // face un vector de tip Block care contine intante penru toate tipurile de blockuri pe care le vom folos in joc
new IBlock(),
new JBlock(),
new LBlock(),
new OBlock(),
new SBlock(),
new TBlock(),
new ZBlock()
};
private readonly Random random= new Random();// oridnea blocurilor in care vor fi introduse in joc va fi aleatorie (la intamplare)
public Block NextBlock { get; private set; } // aici se va salva blockul ce urmeaza, ca jucatorul sa poate vizualiza ce il asteapta, ca in orice joc de tetris normal
private Block RandomBlock() {
return blocks[random.Next(blocks.Length)]; // alegerea la intamplarea a urmatorului block
}
public BlockQueue() {
NextBlock = RandomBlock(); // functie in care se salveaza blockul urmator care ii va permite jcatorului sa il vizualizeze
}
public Block GetAndUpdate() { // aceasta functie se asigura ca acelasi block nu va fi ales de 2 sau mai multe ori consecutiv
Block block = NextBlock;
do {
NextBlock = RandomBlock();
} while (block.id==NextBlock.id);
return block;
}
}
}