-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpieceGen.cpp
More file actions
70 lines (60 loc) · 1.57 KB
/
Copy pathpieceGen.cpp
File metadata and controls
70 lines (60 loc) · 1.57 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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
/*------------------------------------------------
# Name: Justin Boileau, Ryan Kortbeek
#
# Tetris: pieceGen.cpp
#
#-----------------------------------------------*/
#include "pieceGen.h"
void pieceGenerator::Bag::refillBag() {
// places pieces 1 to 7 in the bag
for (int i = 0; i < 7; i++) {
this->bag[i] = i+1;
}
}
// Simulates grabbing and removing an element from the bag
int pieceGenerator::Bag::grab(int remaining) {
int pull, piece;
pull = random(0, remaining);
piece = this->bag[pull];
this->bag[pull] = this->bag[remaining-1];
return piece;
}
void pieceGenerator::Bag::printBag() {
for (int i = 0; i < 7; i++) {
Serial.print(this->bag[i]); Serial.print(" ");
}
Serial.println("");
}
pieceGenerator::pieceGenerator() {}
pieceGenerator::Bag::Bag() {}
pieceGenerator::varBag::varBag(int size) {
this->size = size;
for (int i = 0; i < size; i++) {
this->vBag[i] = 0;
}
}
// add a piece to the bag, will not add if bag is full
void pieceGenerator::varBag::addPiece(int pID) {
for (int i = 0; i < this->size; i++) {
if (this->vBag[i] == 0) {
this->vBag[i] = pID;
break;
}
}
}
void pieceGenerator::varBag::printBag() {
for (int i = 0; i < this->size; i++) {
Serial.print(this->vBag[i]); Serial.print(" ");
}
Serial.println();
}
// Simulates grabbing and removing an element from the bag
int pieceGenerator::varBag::grab() {
int pull, piece;
pull = random(0, this->size);
piece = this->vBag[pull];
this->vBag[pull] = this->vBag[this->size-1];
this->size--;
return piece;
}
pieceGenerator::varBag::varBag() {}