readd: win/lose conditions

This commit is contained in:
DarthMooMancer
2025-10-02 23:18:43 -04:00
parent df9493fb1d
commit 87ff65d0b4
3 changed files with 31 additions and 7 deletions
+2
View File
@@ -13,6 +13,8 @@ Block** create_block_buffer(int starting_array_index, int starting_symbol, int r
void rasterize_block(Point** buffer, Block* block, int starting_index);
void rasterize_buffer(Point** buffer, Block** block_buffer, int offset);
void trim_block_buffer_on_collision(Point** buffer, int buffer_size, Block** block_buffer, int &block_buffer_size, Ball &ball);
void cleanup(Block** block_buffer, int block_buffer_size);
bool is_block_buffer_empty(Block** block_buffer, int block_buffer_size);
enum Direction {
LEFT = -1,
+20
View File
@@ -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
View File
@@ -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;
}