目录
1.game.h
2.game.c
3.progress.c
4.运行结果
1.game.h
#define _CRT_SECURE_NO_WARNINGS#include <string.h>
#include <stdio.h>
#include <time.h>
#include<stdlib.h>#define ROW 9
#define COL 9
#define ROWS 11
#define COLS 11
#define EASY_MODE 9void InitBoard(char board[ROWS][COLS], int rows, int cols, char ret);//初始化棋盘void DisplayBoard(char board[ROWS][COLS], int row, int col);//打印棋盘void setmine(char board[ROWS][COLS], int row, int col);//布置雷void SaoLei(char board[ROWS][COLS], char Double[ROWS][COLS], int row, int col);
2.game.c
#include "game.h"void InitBoard(char board[ROWS][COLS], int rows, int cols, char ret)//初始化棋盘
{int i = 0;int j = 0;for (i = 0; i < rows; i++){for (j = 0; j < cols; j++){board[i][j] = ret;}}
}void DisplayBoard(char board[ROWS][COLS], int row, int col)//打印棋盘
{printf("\n");printf("-------扫雷--------\n");int i = 0;int j = 0;for (j = 0; j <= col; j++){printf("%d ", j);}printf("\n");for (i = 0; i < row; i++){printf("%d ", i+1);for (j = 1; j <= col; j++){printf("%c ", board[i+1][j]);}printf("\n");}printf("-------扫雷--------\n");}void setmine(char board[ROWS][COLS], int row, int col)//布置雷
{int count = EASY_MODE;int x = 0;int y = 0;while (count){x = rand() % row + 1;y = rand() % col + 1;if (board[x][y] == '0'){board[x][y] = '1';count--;}}
}void SaoLei(char board[ROWS][COLS],char Double[ROWS][COLS], int row, int col)
{int a = 0;int b = 0;int z = 0;int m = 0;int g = row*col - EASY_MODE;while (g){printf("请输入>:");scanf("%d%d", &a, &b);if (a > 0 && a < 10 && b > 0 && b < 10){char t = '0';if (board[a][b] == '0'){for (z = -1; z <= 1; z++){for (m = -1; m <= 1; m++){t = t + board[a + z][b + m];}}t = t - '0' * 10 + '0';Double[a][b] = t;g--;DisplayBoard(Double, ROW, COL);//打印棋盘}else{printf("你被炸死了,游戏结束.");break;}}else{printf("输入格式有误,请重新输入.");}}printf("游戏结束了,你赢了.");
}
3.progress.c
#include "game.h"void menu()
{printf("---------------------\n");printf("*******1.play********\n");printf("*******0.exit********\n");printf("---------------------\n");
}void game()
{char mine[ROWS][COLS] = { 0 };char show[ROWS][COLS] = { 0 };InitBoard(mine, ROWS, COLS, '0');//初始化棋盘InitBoard(show, ROWS, COLS, '*');//初始化棋盘DisplayBoard(show, ROW, COL);//打印棋盘//DisplayBoard(mine, ROW, COL);//打印棋盘setmine(mine, ROW, COL);//布置雷SaoLei(mine, show, ROW, COL);DisplayBoard(mine, ROW, COL);//打印棋盘
}int main()
{srand((unsigned int)time(NULL));int input = 0;menu();do{printf("请选择>:");scanf("%d", &input);switch (input){case 1:printf("开始游戏\n");game();break;case 0:printf("退出游戏\n");break;default :printf("输入格式有误,请重新输入.\n");break;}}while (input);return 0;
}