下面是一个简单的开心消消乐小游戏的C语言代码示例:

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

#define ROWS 6
#define COLS 6

// 初始化游戏棋盘
void initBoard(char board[ROWS][COLS]) {
    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(char board[ROWS][COLS]) {
    int i, j;
    for (i = 0; i < ROWS; i++) {
        for (j = 0; j < COLS; j++) {
            printf("%c ", board[i][j]);
        }
        printf("\n");
    }
}

// 判断某个位置是否在棋盘内
int isValidPosition(int row, int col) {
    return row >= 0 && row < ROWS && col >= 0 && col < COLS;
}

// 消除相同的格子(从指定位置开始)
void eliminate(char board[ROWS][COLS], int row, int col) {
    char target = board[row][col]; // 目标格子的内容
    board[row][col] = ' '; // 将目标格子置为空

    // 分别判断目标格子的上、下、左、右四个方向的相邻格子是否与目标格子内容相同,如果相同则递归调用eliminate函数继续消除
    if (isValidPosition(row - 1, col) && board[row - 1][col] == target) {
        eliminate(board, row - 1, col);
    }
    if (isValidPosition(row + 1, col) && board[row + 1][col] == target) {
        eliminate(board, row + 1, col);
    }
    if (isValidPosition(row, col - 1) && board[row][col - 1] == target) {
        eliminate(board, row, col - 1);
    }
    if (isValidPosition(row, col + 1) && board[row][col + 1] == target) {
        eliminate(board, row, col + 1);
    }
}

// 判断游戏是否结束(即棋盘是否还存在可以消除的格子)
int isGameOver(char board[ROWS][COLS]) {
    int i, j;
    for (i = 0; i < ROWS; i++) {
        for (j = 0; j < COLS; j++) {
            if (board[i][j] != ' ') {
                return 0; // 如果存在非空格子,游戏没有结束
            }
        }
    }
    return 1; // 所有格子都为空,游戏结束
}

int main() {
    char board[ROWS][COLS];
    srand(time(NULL)); // 根据当前时间设置随机数种子

    initBoard(board);
    printBoard(board);

    while (!isGameOver(board)) {
        int row, col;
        printf("请输入要消除的格子的行号和列号(以空格分隔):");
        scanf("%d %d", &row, &col);

        if (isValidPosition(row, col)) {
            eliminate(board, row, col);
            printf("消除后的棋盘:\n");
            printBoard(board);
        } else {
            printf("无效的位置!\n");
        }
    }

    printf("游戏结束!\n");
    return 0;
}

这个代码实现了一个简单的开心消消乐游戏。玩家输入要消除的格子的行号和列号,程序会根据这个位置开始递归地消除相同的格子。游戏结束的条件是棋盘上不存在可以消除的格子

请用C语言帮我写一个开心消消乐小游戏的代码

原文地址: https://www.cveoy.top/t/topic/hGdD 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录