//game.c
#define _CRT_SECURE_NO_EARNINGS 1
#define _CRT_SECURE_NO_WARNINGS 1
#include"_23_5_15_1_game.h"
void InitBoard(char board[ROWS][COLS], int rows, int cols, char a)
{
int i, j;
for (i = 0; i <rows ; i++)
{
for (j = 0; j < cols; j++)
{
board[i][j] = a;
}
}
}
void print(char board[ROWS][COLS], int row, int col)
{
int i, j;
printf("------扫雷游戏------\n");
for (i = 0; i <= row; i++)
{
printf("%d ", i);
}
printf("\n");
for (i = 1; i <= row; i++)
{
printf("%d ", i);
for (j = 1; j <= col; j++)
{
printf("%c ", board[i][j]);
}
printf("\n");
}
}
void Setmain(char board[ROWS][COLS], int row, int col)
{
int n = 1,i,p,q;
for (i = 0; i < n; i++)
{
scanf("%d %d", &p, &q);
if (board[p][q] == '0')
board[p][q] = '1';
else
{
printf("此处已有雷\n");
i--;
}
}
}
int FindMine(char board[ROWS][COLS],char arr[ROWS][COLS], int row, int col)
{
int p, q, k = 0, w = 1;;
do
{
printf("输入坐标\n");
scanf("%d %d", &p, &q);
if (board[p][q] == '0')
{
arr[p][q] = '0';
k++;
print(arr, ROW, COL);
}
if (board[p][q] == '1')
{
printf("踩雷了\n");
return w;
}
} while (k <= ROW * COL - 10);
printf("成功\n");
return w;
}
//game.h
#pragma once
#include<stdio.h>
#define ROW 10
#define COL 10
#define ROWS ROW+1
#define COLS COL+1
void InitBoard(char* mine[ROWS][COLS], int rows, int cols, char a);
void print(char* mine[ROWS][COLS], int rows, int cols);
void Setmain(char board[ROWS][COLS], int row, int col);
int FindMine(char board[ROWS][COLS],char arr[ROWS][COLS], int row, int col);
//test.c
#define _CRT_SECURE_NO_EARNINGS 1
#define _CRT_SECURE_NO_WARNINGS 1
#include"_23_5_15_1_game.h"
void meau()
{
printf("*****************************\n");
printf("******** 1 . play *******\n");
printf("******** 0 . exit *******\n");
printf("*****************************\n");
}
void game()
{
char mine[ROWS][COLS];
char show[ROWS][COLS];
InitBoard(mine, ROWS, COLS, '0');
InitBoard(show, ROWS, COLS, '#');
print(mine, ROW, COL);
print(show, ROW, COL);
Setmain(mine, ROW, COL);
print(mine, ROW, COL);
FindMine(mine,show, ROW, COL);
}
int main()
{
int n;
do
{
meau();
scanf("%d", &n);
if (n == 1)
game();
else if (n == 0)
printf("退出游戏\n");
else
printf("重新选择\n");
} while (n);
return 0;
}
昨天写了一个三子棋的代码,今天分享一下扫雷,扫雷我们要知道,我们要有一个存放是否有雷的二维数组,和一个给用户观看的二维数组,首先对其初始化,然后布雷。排雷时,若无雷,则将此处位置改变,若有雷则失败。