Game Project Code
Game Project Code
#include <string>
#include <cstdlib>
#include <ctime>
public:
Player(int startX, int startY) : x(startX), y(start) {}
if (move == "left") {
if (newX > 0 && currStage[newY][newX - 1] == 0) {
x--;
}
} else if (move == "right") {
if (newX < 12 && currStage[newY][newX + 1] == 0) {
x++;
}
} else if (move == "down") {
if (newY < 19 && currStage[newY + 1][newX] == 0) {
y++;
}
} else if (move == "rotate") {
// Implement block rotation
} else if (move == "bomb") {
// Implement bomb drop
}
}
bool gameOver(int(&currStage)[20][13]) {
for (int i = 0; i < 13; i++) {
if (currStage[0][i] != 0) {
return true;
}
}
return false;
}
-----------------------------------------------------------------------------------
---------------------------------------------------------------------
class Game {
private:
Player* player1;
Player* player2;
public:
Game(GameMode mode) {
if (mode == GameMode::HumanVsHuman) {
player1 = new HumanPlayer(4, 0);
player2 = new HumanPlayer(4, 0);
} else if (mode == GameMode::HumanVsComputer) {
player1 = new HumanPlayer(4, 0);
player2 = new ComputerPlayer(4, 0);
} else if (mode == GameMode::ComputerVsComputer) {
player1 = new ComputerPlayer(4, 0);
player2 = new ComputerPlayer(4, 0);
}
}
~Game() {
delete player1;
delete player2;
}
void start() {
int nextStage[20][13];
int currStage[20][13];
bool isBomb1 = false;
bool isBomb2 = false;
while (!gameOver(currStage)) {
player1->moveBlock(player1->x, player1->y, currStage, isBomb1);
player2->moveBlock(player2->x, player2->y, currStage, isBomb2);
}
}
};
int main() {
srand(time(NULL)); // Seed the random number generator
Game humanVsHuman(GameMode::HumanVsHuman);
humanVsHuman.start();
Game humanVsComputer(GameMode::HumanVsComputer);
humanVsComputer.start();
Game computerVsComputer(GameMode::ComputerVsComputer);
computerVsComputer.start();
return 0;
}