From 5f871f7a4c95201764b1d6725ad338b04b8040cf Mon Sep 17 00:00:00 2001 From: dawidg81 Date: Tue, 3 Feb 2026 10:40:49 +0100 Subject: Added bombCheck method in Game --- src/Game.hpp | 1 + 1 file changed, 1 insertion(+) (limited to 'src/Game.hpp') diff --git a/src/Game.hpp b/src/Game.hpp index 61a788e..e828780 100644 --- a/src/Game.hpp +++ b/src/Game.hpp @@ -20,6 +20,7 @@ public: void initDiff(int diff); void initBoard(); void displayBoard(); + void bombCheck(); void input(); }; -- cgit v1.2.3 From 3d9a91fb44c8ae43779e80e12a4a2da87cc9b3b9 Mon Sep 17 00:00:00 2001 From: dawidg81 Date: Tue, 3 Feb 2026 10:57:17 +0100 Subject: Starting to handle board update --- src/.Game.cpp.swp | Bin 16384 -> 0 bytes src/Game.cpp | 21 ++++++++++++++++----- src/Game.hpp | 3 ++- 3 files changed, 18 insertions(+), 6 deletions(-) delete mode 100644 src/.Game.cpp.swp (limited to 'src/Game.hpp') diff --git a/src/.Game.cpp.swp b/src/.Game.cpp.swp deleted file mode 100644 index d32da3a..0000000 Binary files a/src/.Game.cpp.swp and /dev/null differ diff --git a/src/Game.cpp b/src/Game.cpp index 82c5eb7..8b59365 100644 --- a/src/Game.cpp +++ b/src/Game.cpp @@ -54,8 +54,18 @@ void Game::initBoard(){ tileMap[i][j] = 0; // DEBUG: seeing bombs - if(bombMap[i][j] == true){ - tileMap[i][j] = 11; + // if(bombMap[i][j] == true){ + // tileMap[i][j] = 11; + // } + } + } +} + +void Game::updateBoard(){ + for(int x=0; x < boardWidth; x++){ + for(int y=0; y < boardHeight; y++){ + if(Game::bombCheck() == 0){ + tileMap[x][y] = 1; } } } @@ -147,12 +157,12 @@ void Game::displayBoard() { } } -void Game::bombCheck(){ +int Game::bombCheck(){ + int bombsAround[boardWidth][boardHeight]; + for(int x=0; x < boardWidth; x++){ for(int y=0; y < boardHeight; y++){ if(tileMap[x][y] == 1){ - int bombsAround[boardWidth][boardHeight]; - if(bombMap[x-1][y-1] == true){ bombsAround[x][y]++; } @@ -177,6 +187,7 @@ void Game::bombCheck(){ if(bombMap[x+1][y+1] == true){ bombsAround[x][y]++; } + return bombsAround[x][y]; } } } diff --git a/src/Game.hpp b/src/Game.hpp index e828780..88fc36b 100644 --- a/src/Game.hpp +++ b/src/Game.hpp @@ -19,8 +19,9 @@ public: int editDiff(); void initDiff(int diff); void initBoard(); + void updateBoard(); void displayBoard(); - void bombCheck(); + int bombCheck(); void input(); }; -- cgit v1.2.3 From 2e9b97faf5b5c123da612e4b82c914dcd79bc959 Mon Sep 17 00:00:00 2001 From: dawidg81 Date: Tue, 3 Feb 2026 11:04:14 +0100 Subject: Simplified bombCheck --- src/Game.cpp | 60 ++++++++++++++++++++++++++++-------------------------------- src/Game.hpp | 2 +- 2 files changed, 29 insertions(+), 33 deletions(-) (limited to 'src/Game.hpp') diff --git a/src/Game.cpp b/src/Game.cpp index 8b59365..ac2b130 100644 --- a/src/Game.cpp +++ b/src/Game.cpp @@ -64,7 +64,7 @@ void Game::initBoard(){ void Game::updateBoard(){ for(int x=0; x < boardWidth; x++){ for(int y=0; y < boardHeight; y++){ - if(Game::bombCheck() == 0){ + if(Game::bombCheck(x, y) == 0){ tileMap[x][y] = 1; } } @@ -157,40 +157,36 @@ void Game::displayBoard() { } } -int Game::bombCheck(){ - int bombsAround[boardWidth][boardHeight]; +int Game::bombCheck(int x, int y){ + int bombsAround = 0; - for(int x=0; x < boardWidth; x++){ - for(int y=0; y < boardHeight; y++){ - if(tileMap[x][y] == 1){ - if(bombMap[x-1][y-1] == true){ - bombsAround[x][y]++; - } - if(bombMap[x][y-1] == true){ - bombsAround[x][y]++; - } - if(bombMap[x+1][y-1] == true){ - bombsAround[x][y]++; - } - if(bombMap[x-1][y] == true){ - bombsAround[x][y]++; - } - if(bombMap[x+1][y] == true){ - bombsAround[x][y]++; - } - if(bombMap[x-1][y+1] == true){ - bombsAround[x][y]++; - } - if(bombMap[x][y+1] == true){ - bombsAround[x][y]++; - } - if(bombMap[x+1][y+1] == true){ - bombsAround[x][y]++; - } - return bombsAround[x][y]; - } + if(tileMap[x][y] == 1){ + if(bombMap[x-1][y-1] == true){ + bombsAround++; + } + if(bombMap[x][y-1] == true){ + bombsAround++; + } + if(bombMap[x+1][y-1] == true){ + bombsAround++; + } + if(bombMap[x-1][y] == true){ + bombsAround++; + } + if(bombMap[x+1][y] == true){ + bombsAround++; + } + if(bombMap[x-1][y+1] == true){ + bombsAround++; + } + if(bombMap[x][y+1] == true){ + bombsAround++; + } + if(bombMap[x+1][y+1] == true){ + bombsAround++; } } + return bombsAround; } void Game::input(){ diff --git a/src/Game.hpp b/src/Game.hpp index 88fc36b..cc6217a 100644 --- a/src/Game.hpp +++ b/src/Game.hpp @@ -21,7 +21,7 @@ public: void initBoard(); void updateBoard(); void displayBoard(); - int bombCheck(); + int bombCheck(int x, int y); void input(); }; -- cgit v1.2.3 From 211dfea719540a78c57f970555979f1a25c960ed Mon Sep 17 00:00:00 2001 From: dawidg81 Date: Tue, 3 Feb 2026 12:12:00 +0100 Subject: Fixing game --- src/Game.cpp | 25 ++++++++++++++++--------- src/Game.hpp | 1 + src/main.cpp | 1 + 3 files changed, 18 insertions(+), 9 deletions(-) (limited to 'src/Game.hpp') diff --git a/src/Game.cpp b/src/Game.cpp index 3d7aa86..d26373c 100644 --- a/src/Game.cpp +++ b/src/Game.cpp @@ -52,6 +52,7 @@ void Game::initBoard(){ for(int i=0; i < boardHeight; i++){ for(int j=0; j < boardWidth; j++){ tileMap[i][j] = 0; + revealed[i][j] = false; // DEBUG: seeing bombs // if(bombMap[i][j] == true){ @@ -64,23 +65,29 @@ void Game::initBoard(){ void Game::updateBoard(){ for(int x=0; x < boardWidth; x++){ for(int y=0; y < boardHeight; y++){ - if(Game::bombCheck(x, y) == 0){ + if(revealed[x][y] == false){ + tileMap[x][y] = 0; + } else { tileMap[x][y] = 1; - } else if(Game::bombCheck(x, y) == 1){ + } + + if(Game::bombCheck(x, y) == 0 && revealed[x][y] == true){ + tileMap[x][y] = 1; + } else if(Game::bombCheck(x, y) == 1 && revealed[x][y] == true){ tileMap[x][y] = 2; - } else if(Game::bombCheck(x, y) == 2){ + } else if(Game::bombCheck(x, y) == 2 && revealed[x][y] == true){ tileMap[x][y] = 3; - } else if(Game::bombCheck(x, y) == 3){ + } else if(Game::bombCheck(x, y) == 3 && revealed[x][y] == true){ tileMap[x][y] = 4; - } else if(Game::bombCheck(x, y) == 4){ + } else if(Game::bombCheck(x, y) == 4 && revealed[x][y] == true){ tileMap[x][y] = 5; - } else if(Game::bombCheck(x, y) == 5){ + } else if(Game::bombCheck(x, y) == 5 && revealed[x][y] == true){ tileMap[x][y] = 6; - } else if(Game::bombCheck(x, y) == 6){ + } else if(Game::bombCheck(x, y) == 6 && revealed[x][y] == true){ tileMap[x][y] = 7; - } else if(Game::bombCheck(x, y) == 7){ + } else if(Game::bombCheck(x, y) == 7 && revealed[x][y] == true){ tileMap[x][y] = 8; - } else if(Game::bombCheck(x, y) == 8){ + } else if(Game::bombCheck(x, y) == 8 && revealed[x][y] == true){ tileMap[x][y] = 9; } } diff --git a/src/Game.hpp b/src/Game.hpp index cc6217a..207202f 100644 --- a/src/Game.hpp +++ b/src/Game.hpp @@ -10,6 +10,7 @@ private: bool bombMap[MAX_H][MAX_W]; int tileMap[MAX_H][MAX_W]; + bool revealed[MAX_H][MAX_W]; int mines; diff --git a/src/main.cpp b/src/main.cpp index d4dab15..3cb5551 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -34,6 +34,7 @@ int main(){ game.initBoard(); while(game.inGame){ + game.updateBoard(); game.displayBoard(); game.input(); } -- cgit v1.2.3 From cd14289702fd22ed65536dccd61fd9569198b644 Mon Sep 17 00:00:00 2001 From: dawidg81 Date: Tue, 3 Feb 2026 14:52:35 +0100 Subject: Revoked placing flags feature --- minesweeper | Bin 0 -> 53712 bytes src/Game.cpp | 6 ++++++ src/Game.hpp | 1 + src/Game.o | Bin 0 -> 15680 bytes src/main.o | Bin 0 -> 7336 bytes 5 files changed, 7 insertions(+) create mode 100755 minesweeper create mode 100644 src/Game.o create mode 100644 src/main.o (limited to 'src/Game.hpp') diff --git a/minesweeper b/minesweeper new file mode 100755 index 0000000..4d37823 Binary files /dev/null and b/minesweeper differ diff --git a/src/Game.cpp b/src/Game.cpp index 327e179..e08ab24 100644 --- a/src/Game.cpp +++ b/src/Game.cpp @@ -34,6 +34,7 @@ void Game::initBoard(){ bombMap[y][x] = false; revealed[y][x] = false; tileMap[y][x] = 0; + flag[y][x] = false; } } @@ -53,6 +54,8 @@ void Game::updateBoard(){ for(int y=0; y < boardHeight; y++){ for(int x=0; x < boardWidth; x++){ if(!revealed[y][x]) continue; + if(!flag[y][x]) continue; + else tileMap[y][x] = 10; int bombs = bombCheck(x, y); tileMap[y][x] = bombs == 0 ? 1 : bombs + 1; @@ -118,6 +121,7 @@ void Game::displayBoard() { for(int x = 0; x < boardWidth; x++){ if(tileMap[y][x] == 0) putchar('#'); else if(tileMap[y][x] == 1) putchar('.'); + else if(tileMap[y][x] == 10) putchar('F'); else putchar('0' + tileMap[y][x] - 1); } putchar('\n'); @@ -184,4 +188,6 @@ void Game::input(){ } } } + + if(cmd == "f") } diff --git a/src/Game.hpp b/src/Game.hpp index 207202f..ca3cb33 100644 --- a/src/Game.hpp +++ b/src/Game.hpp @@ -11,6 +11,7 @@ private: bool bombMap[MAX_H][MAX_W]; int tileMap[MAX_H][MAX_W]; bool revealed[MAX_H][MAX_W]; + bool flag[MAX_H][MAX_W]; int mines; diff --git a/src/Game.o b/src/Game.o new file mode 100644 index 0000000..813d1bb Binary files /dev/null and b/src/Game.o differ diff --git a/src/main.o b/src/main.o new file mode 100644 index 0000000..0751ff9 Binary files /dev/null and b/src/main.o differ -- cgit v1.2.3 From 80553898f80858e6e66613c889ed9f19327a1cf6 Mon Sep 17 00:00:00 2001 From: dawidg81 Date: Sun, 8 Feb 2026 17:26:56 +0100 Subject: Attempts to fix flags displaying --- src/Game.cpp | 21 ++++++++++----------- src/Game.hpp | 4 ++-- 2 files changed, 12 insertions(+), 13 deletions(-) (limited to 'src/Game.hpp') diff --git a/src/Game.cpp b/src/Game.cpp index f3d92f6..d98c5e9 100644 --- a/src/Game.cpp +++ b/src/Game.cpp @@ -29,9 +29,9 @@ void Game::initBoard(){ for(int y=0; y < boardHeight; y++){ for(int x=0; x < boardWidth; x++){ bombMap[y][x] = false; - revealed[y][x] = false; + revealedMap[y][x] = false; tileMap[y][x] = 0; - // flag[y][x] = false; + flagMap[y][x] = false; } } @@ -50,9 +50,8 @@ void Game::initBoard(){ void Game::updateBoard(){ for(int y=0; y < boardHeight; y++){ for(int x=0; x < boardWidth; x++){ - if(!revealed[y][x]) continue; - if(flag[y][x]) tileMap[y][x] = 10; - else tileMap[y][x] = 10; + if(!revealedMap[y][x]) continue; + else if(flagMap[y][x] == true) continue; int bombs = bombCheck(x, y); tileMap[y][x] = bombs == 0 ? 1 : bombs + 1; @@ -170,16 +169,16 @@ void Game::input(){ return; } - if(!revealed[y][x]){ - revealed[y][x] = true; + if(!revealedMap[y][x]){ + revealedMap[y][x] = true; if(bombCheck(x, y) == 0){ for(int dy = -1; dy <= 1; dy++){ for(int dx = -1; dx <= 1; dx++){ int nx = x + dx; int ny = y + dy; - if(nx >= 0 && nx < boardWidth && ny >= 0 && ny < boardHeight && !revealed[ny][nx]){ - revealed[ny][nx] = true; + if(nx >= 0 && nx < boardWidth && ny >= 0 && ny < boardHeight && !revealedMap[ny][nx]){ + revealedMap[ny][nx] = true; } } } @@ -188,10 +187,10 @@ void Game::input(){ } if(cmd == "f"){ - if(revealed[y][x]){ + if(revealedMap[y][x]){ std::cout << "You can't place flag here.\n"; } else { - flag[y][x] = true; + flagMap[y][x] = true; } } } diff --git a/src/Game.hpp b/src/Game.hpp index ca3cb33..599259f 100644 --- a/src/Game.hpp +++ b/src/Game.hpp @@ -10,8 +10,8 @@ private: bool bombMap[MAX_H][MAX_W]; int tileMap[MAX_H][MAX_W]; - bool revealed[MAX_H][MAX_W]; - bool flag[MAX_H][MAX_W]; + bool revealedMap[MAX_H][MAX_W]; + bool flagMap[MAX_H][MAX_W]; int mines; -- cgit v1.2.3