readd: win/lose conditions
This commit is contained in:
@@ -34,6 +34,26 @@ Block** create_block_buffer(int starting_array_index, int starting_symbol, int r
|
||||
return block_buffer;
|
||||
}
|
||||
|
||||
bool is_block_buffer_empty(Block** block_buffer, int block_buffer_size) {
|
||||
int total_clear_blocks = 0;
|
||||
for(int i = 0; i < block_buffer_size; i++) {
|
||||
if(block_buffer[i] == nullptr) {
|
||||
total_clear_blocks++;
|
||||
}
|
||||
}
|
||||
if(total_clear_blocks == block_buffer_size) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
void cleanup(Block** block_buffer, int block_buffer_size) {
|
||||
for(int i = 0; i < block_buffer_size; i++) {
|
||||
delete block_buffer[i];
|
||||
}
|
||||
delete[] block_buffer;
|
||||
}
|
||||
|
||||
void rasterize_block(Point** buffer, Block* block, int starting_index) {
|
||||
for(int i = 0; i < block->_size; i++) {
|
||||
buffer[starting_index + i] = block->m_nodes[i];
|
||||
|
||||
+9
-7
@@ -27,15 +27,17 @@ int main() {
|
||||
window.clear_display();
|
||||
window.update_board(buffer, buffer_size);
|
||||
window.draw_display(FPMS);
|
||||
// Create a clause that closes game on lives = 0
|
||||
if(paddle.m_hearts <= 0) {
|
||||
running = false;
|
||||
std::cout << "No Hearts left! You lose!\n";
|
||||
}
|
||||
if(is_block_buffer_empty(block_buffer, block_buffer_size)) {
|
||||
running = false;
|
||||
std::cout << "No Blocks left! You win!\n";
|
||||
}
|
||||
std::cout << "Hearts left: " << paddle.m_hearts << "\n";
|
||||
}
|
||||
input_thread.join();
|
||||
// TODO
|
||||
// move below to a cleanup function instead
|
||||
for(int i = 0; i < block_buffer_size; i++) {
|
||||
delete block_buffer[i];
|
||||
}
|
||||
delete[] block_buffer;
|
||||
cleanup(block_buffer, block_buffer_size);
|
||||
return 0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user