/* * PieceGenerator.cpp * * Created on: May 5, 2013 * Author: chibi_000 */ #include "PieceGenerator.h" #include #include const int PieceGenerator::pieces_array[][8] = { {4, 1, 1, 1, 1, 1, 0, 0}, {3, 2, 2, 2, 2, 2, 0, 0}, {3, 2, 3, 0, 0, 3, 3, 3}, {3, 2, 0, 4, 0, 4, 4, 4}, {3, 2, 5, 5, 0, 0, 5, 5}, {3, 2, 0, 6, 6, 6, 6, 0}, {2, 2, 7, 7, 7, 7, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0} }; PieceGenerator::PieceGenerator() { // Create pieces this->initializePieces(); // Set random seed srand(time(NULL)); } PieceGenerator::~PieceGenerator() { } void PieceGenerator::initializePieces() { for (int i = 0; this->pieces_array[i][0] != 0; i++) { int w = this->pieces_array[i][0]; int h = this->pieces_array[i][1]; this->pieces.push_back(Piece(w, h, this->pieces_array[i] + 2)); } } Piece PieceGenerator::getRandomPiece() const { int i = rand() % this->pieces.size(); return this->pieces[i]; } Piece PieceGenerator::getRandomPieceRotated() const { // Get random piece Piece p = this->getRandomPiece(); // Rotate random times for (int i = rand() % 4; i >= 0; i--) p = p.rotate(); // Return return p; }