update file names

This commit is contained in:
Bernardo Magri
2025-03-05 20:31:55 +00:00
parent 37b953eb8e
commit 2c13567747
12 changed files with 552 additions and 15 deletions

46
src/minefield.hpp Normal file
View File

@@ -0,0 +1,46 @@
#pragma once
// #include <emmintrin.h>
#include <sigc++/signal.h>
#include <vector>
#include <cstdlib>
#include <ctime>
#include <memory>
struct Cell {
bool isFlagged;
bool isCleared;
bool isBomb;
int bombsNearby;
Cell(): isFlagged(false), isCleared(false), isBomb(false), bombsNearby(-1) {};
};
class MineField {
std::vector<std::shared_ptr<Cell>> m_cells;
int m_rows;
int m_cols;
int m_totalMines;
int m_remainingFlags;
bool m_exploded;
void computeBombsNearby(int x, int y);
void openNeighboorhood(int x, int y);
void setClearCell(int x, int y);
public:
MineField(int cols, int rows, int mines);
void initBombs(int x, int y);
bool isBomb(int x, int y);
bool isFlagged(int x, int y);
bool isCleared(int x, int y);
bool clearCell(int x, int y);
int bombsNearby(int x, int y);
bool isGameOver() {return m_exploded; };
int getCols() {return m_cols; };
int getRows() {return m_rows; };
bool toggleFlag(int x, int y);
int getRemainingFlags() {return m_remainingFlags; };
int getTotalMines() {return m_totalMines; };
sigc::signal<void(int, int)> clearCellSignal;
sigc::signal<void(int)> remainingFlagsChangedSignal;
};