C语言数组应用实现扫雷游戏

本文实例为大家分享了C语言数组应用实现扫雷游戏的具体代码,供大家参考,具体内容如下
扫雷游戏(10×10的面板):
1.定义两个12×12的字符型数组;
2.show_board[][]:初始化全为*
mine_board[][]:随机赋值字符’0’或’1’
3.统计雷的个数:周围8个位置的值累加-8×’0’
代码:
【C语言数组应用实现扫雷游戏】game.h

#ifndef _GAME_H_#define _GAME_H_#include #include #include #include #define ROW 12#define COL 12#define NUMS 20//雷的个数#pragma warning(disable:4996) void Menu(); void Game(); #endif

game.c
#include "game.h"void Menu(){printf("########################\n"); printf("#####1.Play2.Exit#####\n"); printf("########################\n"); printf("请输入:"); }void SetMines(char board[][COL], int row,int col){int num = NUMS; while (num){int x = rand() % 10 + 1; int y = rand() % 10 + 1; if (board[x][y] == '0'){board[x][y] = '1'; num--; }}}int GetNums(char board[][COL], int row,int col, int x, int y){return board[x-1][y-1] + board[x-1][y] + \board[x-1][y+1] + board[x][y+1] + \board[x+1][y+1] + board[x+1][y] + \board[x+1][y-1] + board[x][y-1] - 8 * '0'; }void ShowBoard(char board[][COL], int row, int col){printf(""); for (int i = 1; i < col - 1; i++){printf(" %2d ", i); }printf("\n"); printf("—————————————————————\n"); for (int i = 1; i < row - 1; i++){printf("%2d|", i); for (int j = 1; j < col - 1; j++){printf(" %c |", board[i][j]); }printf("\n"); printf("—————————————————————\n"); }}void Game(){system("cls"); srand((unsigned long)time(NULL)); char show_board[ROW][COL]; char mine_board[ROW][COL]; memset(show_board,'*', sizeof(show_board)); memset(mine_board,'0', sizeof(mine_board)); //初始化二维数组SetMines(mine_board,ROW,COL); //布雷int count = (ROW - 2)*(COL - 2) - NUMS; int x = 0; int y = 0; do{ShowBoard(show_board,ROW,COL); printf("请输入坐标:"); scanf("%d %d", &x, &y); if (x<1 || x>ROW - 2 || y<1 || y>COL - 2){printf("输入位置越界,请重新输入!\n"); continue; }if (show_board[x][y] != '*'){printf("该位置已被排除,请重新输入!\n"); continue; }if (mine_board[x][y] == '1'){break; }int num = GetNums(mine_board,ROW,COL,x, y); show_board[x][y] = num + '0'; count--; system("cls"); } while (count > 0); if (count > 0){printf("你被炸死了!\n"); ShowBoard(mine_board, ROW, COL); }else{printf("恭喜,你通过游戏!\n"); }}

main.c
#include "game.h"int main(){int quit = 0; int select = 0; while (!quit){Menu(); scanf("%d", &select); switch (select){case 1:Game(); break; case 2:quit = 1; break; default:printf("输入有误,请重新输入!\n "); break; }}printf("ByeBye!\n"); system("pause"); return 0; }

运行结果
C语言数组应用实现扫雷游戏
文章图片

C语言数组应用实现扫雷游戏
文章图片

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

    推荐阅读