用C语言设计一个消消乐的简易小游戏
时间: 2023-11-13 11:05:12 浏览: 93
以下是一个简单的C语言消消乐游戏的示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#define ROWS 6
#define COLS 6
// 游戏棋盘
char board[ROWS][COLS];
// 初始化游戏棋盘
void initBoard() {
int i, j;
for (i = 0; i < ROWS; i++) {
for (j = 0; j < COLS; j++) {
board[i][j] = 'A' + rand() % 6; // 随机生成A-F的字符
}
}
}
// 打印游戏棋盘
void printBoard() {
int i, j;
for (i = 0; i < ROWS; i++) {
for (j = 0; j < COLS; j++) {
printf("%c ", board[i][j]);
}
printf("\n");
}
}
// 消除相同连续的字符
bool eliminate() {
bool eliminated = false;
int i, j;
// 横向消除
for (i = 0; i < ROWS; i++) {
for (j = 0; j < COLS - 2; j++) {
if (board[i][j] == board[i][j + 1] && board[i][j] == board[i][j + 2]) {
board[i][j] = board[i][j + 1] = board[i][j + 2] = ' ';
eliminated = true;
}
}
}
// 纵向消除
for (j = 0; j < COLS; j++) {
for (i = 0; i < ROWS - 2; i++) {
if (board[i][j] == board[i + 1][j] && board[i][j] == board[i + 2][j]) {
board[i][j] = board[i + 1][j] = board[i + 2][j] = ' ';
eliminated = true;
}
}
}
return eliminated;
}
// 下落消除后的字符
void drop() {
int i, j, k;
// 横向下落
for (i = ROWS - 1; i >= 0; i--) {
for (j = 0; j < COLS; j++) {
if (board[i][j] == ' ') {
for (k = i - 1; k >= 0; k--) {
if (board[k][j] != ' ') {
board[i][j] = board[k][j];
board[k][j] = ' ';
break;
}
}
}
}
}
}
// 判断游戏是否结束
bool isGameOver() {
int i, j;
// 判断横向是否有连续三个相同的字符
for (i = 0; i < ROWS; i++) {
for (j = 0; j < COLS - 2; j++) {
if (board[i][j] == board[i][j + 1] && board[i][j] == board[i][j + 2]) {
return false;
}
}
}
// 判断纵向是否有连续三个相同的字符
for (j = 0; j < COLS; j++) {
for (i = 0; i < ROWS - 2; i++) {
if (board[i][j] == board[i + 1][j] && board[i][j] == board[i + 2][j]) {
return false;
}
}
}
return true;
}
int main() {
initBoard();
printf("Welcome to the Simple Bejeweled Game!\n\n");
printBoard();
printf("\n");
while (!isGameOver()) {
if (eliminate()) {
drop();
}
printBoard();
printf("\n");
}
printf("Game Over!\n");
return 0;
}
```
这个简易的消消乐游戏使用6x6的棋盘,棋盘上的字符为A-F,连续出现三个相同的字符时会被消除并下落。游戏结束条件是没有连续三个相同的字符。你可以根据需求进行修改和扩展。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)