消灭星星使用数组使星星下落程序
时间: 2023-12-10 20:03:48 浏览: 151
Python+Kivy实现的消灭星星小游戏
下面是一个使用数组实现星星下落的简单示例程序:
```
#include <iostream>
#include <vector>
using namespace std;
const int ROWS = 8;
const int COLS = 8;
// 星星类型
enum StarType {
STAR_RED = 1,
STAR_BLUE,
STAR_GREEN,
STAR_PURPLE,
STAR_YELLOW
};
// 游戏区域
int board[ROWS][COLS] = {
{0, 0, STAR_RED, STAR_BLUE, STAR_GREEN, STAR_RED, 0, 0},
{0, 0, STAR_GREEN, STAR_PURPLE, STAR_YELLOW, STAR_BLUE, 0, 0},
{0, 0, STAR_YELLOW, STAR_PURPLE, STAR_RED, STAR_GREEN, 0, 0},
{0, 0, STAR_RED, STAR_BLUE, STAR_GREEN, STAR_RED, 0, 0},
{0, 0, STAR_BLUE, STAR_PURPLE, STAR_YELLOW, STAR_BLUE, 0, 0},
{0, 0, STAR_YELLOW, STAR_PURPLE, STAR_RED, STAR_GREEN, 0, 0},
{0, 0, STAR_RED, STAR_BLUE, STAR_GREEN, STAR_RED, 0, 0},
{0, 0, STAR_BLUE, STAR_PURPLE, STAR_YELLOW, STAR_BLUE, 0, 0}
};
// 显示游戏区域
void show_board() {
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS; j++) {
cout << board[i][j] << " ";
}
cout << endl;
}
}
// 消除星星
void remove_stars(int row, int col) {
// TODO: 实现消除星星的逻辑
}
// 处理星星下落
void handle_falling_stars() {
// 处理每一列
for (int j = 0; j < COLS; j++) {
int empty_row = -1; // 第一个空行的位置
for (int i = ROWS - 1; i >= 0; i--) {
if (board[i][j] == 0 && empty_row == -1) {
empty_row = i;
}
else if (board[i][j] != 0 && empty_row != -1) {
board[empty_row][j] = board[i][j];
board[i][j] = 0;
empty_row--;
}
}
}
// 处理每一行
for (int i = ROWS - 1; i >= 0; i--) {
int empty_col = -1; // 第一个空列的位置
for (int j = 0; j < COLS; j++) {
if (board[i][j] == 0 && empty_col == -1) {
empty_col = j;
}
else if (board[i][j] != 0 && empty_col != -1) {
board[i][empty_col] = board[i][j];
board[i][j] = 0;
empty_col++;
}
}
}
}
// 主函数
int main() {
cout << "初始状态:" << endl;
show_board();
// 消除 (2, 4) 处的星星
remove_stars(2, 4);
// 显示消除后的状态
cout << "消除后状态:" << endl;
show_board();
// 处理星星下落
handle_falling_stars();
// 显示下落后的状态
cout << "星星下落后状态:" << endl;
show_board();
return 0;
}
```
这个程序中,我们定义了一个 8x8 的游戏区域数组 `board`,其中每个元素是一个星星的类型(用数字表示)。在 `handle_falling_stars` 函数中,我们实现了星星下落的逻辑,包括处理每一列和每一行的情况。我们还定义了一个 `remove_stars` 函数来实现消除星星的逻辑,但这个函数的具体实现留作练习。在主函数中,我们演示了如何调用这些函数来模拟星星下落的过程。
阅读全文