我写了个扫雷程序,调试总提示没有memset.asm,百度了下也没有结果,你们知道吗


#define _CRT_SECURE_NO_WARNINGS 1
#define ROW 11//控制棋盘的行
#define COL 11//控制棋盘的列
#include <stdio.h>
#include <time.h>
#include <string.h>
#include <stdlib.h>

void ResetBoard(char Board[ROW][COL], int row, int col)
{
    int i, j = 0;
    for (i = 1; i <= row - 2; i++)
    {
        for (j = 1; j <= col - 2; j++)
        {
            Board[i][j] = ' ';
            printf(" %c ", Board[i][j]);
            if (j < col - 2)
            {
                printf("|");
            }
        }
        printf("\n");
        for (j = 1; j <= col - 2; j++)
        {
            if (i < col - 2)
            {
                printf("---");
                if (j < col - 2)
                {
                    printf("|");
                }
            }
        }
        printf("\n");
    }
}

void Mine(char Board[ROW][COL], int row, int col)
{
    int x, y = 0;
    x = rand() % (row - 2) + 1;
    y = rand() % (col - 2) + 1;
    for (int i = 0; i <= 9; i++)
    {
        if (Board[x][y] == ' ')
        {
            Board[x][y] = '*';
        }
    }
}

int Play(char Board[ROW][COL], int row, int col)
{
    int x = 0;
    int y = 0;
    int Boom = 0;
    int count = 0;
    printf("输入坐标:");
    scanf("%d%d", &x, &y);
    if (Board[x][y] == '*')
    {
        return 0;
    }
    for (int i = 1; i <= row - 2; i++)
    {
        for (int j = 1; j <= col - 2; j++)
        {
            if (Board[i][j] == ' ')
            {
                count++;
                if (count == 0)
                {
                    return 1;
                }
            }
        }
    }
    for (int i = x - 1; i <= x + 1; i++)
    {
        for (int j = y - 1; j <= j + 1; j++)
        {
            if (Board[i][j] == '*')
            {
                Boom++;
            }
        }
    }
    if (Board[x][y] == ' ')
    {
        Board[x][y] = Boom;
    }
}

void PlayBoard(char Board[ROW][COL], int row, int col)
{
    int i, j = 0;
    for (i = 1; i <= row - 2; i++)
    {
        for (j = 1; j <= col - 2; j++)
        {
            printf(" %c ", Board[i][j]);
            if (j < col - 2)
            {
                printf("|");
            }
        }
        printf("\n");
        for (j = 1; j <= col - 2; j++)
        {
            if (i < col - 2)
            {
                printf("---");
                if (j < col - 2)
                {
                    printf("|");
                }
            }
        }
        printf("\n");
    }
}

void menu()
{
    printf("**************************\n");
    printf("***** 1.play  0.exit *****\n");
    printf("**************************\n");
    printf("输入1开始游戏 输入0退出游戏:\n");
}

void game()
{
    char Board[ROW][COL] = { 0 };
    ResetBoard(Board, ROW, COL);
    while (1)
    {
        int back = 0;
        Mine(Board, ROW, COL);
        printf("请输入坐标:\n");
        Play(Board, ROW, COL);
        PlayBoard(Board, ROW, COL);
        back = Play(Board, ROW, COL);
        if (back == 0)
        {
            printf("BOOOOOOOM!!!\n");
            break;
        }
        if (back == 1)
        {
            printf("获胜!\n");
            break;
        }
    }
}

int main()//自建扫雷游戏
{
    int input = 0;
    srand((unsigned int)time(NULL));//这个用的是 stdlib.h,而不是string.h
    do
    {
        menu();
        scanf("%d", &input);
        switch (input)
        {
        case 1:
            game();
            break;
        case 2:
            printf("退出游戏!\n");
            break;
        default:
            printf("输入错误,请重新输入!\n");
            break;
        }

    } while (input);
}

img

img

修改如下,供参考:

#define _CRT_SECURE_NO_WARNINGS 1
#define ROW 11//控制棋盘的行
#define COL 11//控制棋盘的列
#include <stdio.h>
#include <time.h>
#include <string.h>
#include <stdlib.h>

void ResetBoard(char Board[ROW][COL], int row, int col)
{
    int i, j = 0;
    for (i = 1; i <= row - 2; i++)
    {
        for (j = 1; j <= col - 2; j++)
        {
            Board[i][j] = ' ';
            printf(" %c ", Board[i][j]);
            if (j < col - 2)
            {
                printf("|");
            }
        }
        printf("\n");
        for (j = 1; j <= col - 2; j++)
        {
            if (i < col - 2)
            {
                printf("---");
                if (j < col - 2)
                {
                    printf("|");
                }
            }
        }
        printf("\n");
    }
}

void Mine(char Board[ROW][COL], int row, int col)
{
    int x, y = 0;
    x = rand() % (row - 2) + 1;
    y = rand() % (col - 2) + 1;
    for (int i = 0; i <= 9; i++)
    {
        if (Board[x][y] == ' ')
        {
            Board[x][y] = '*';
        }
    }
}

int Play(char Board[ROW][COL], int row, int col)
{
    int x = 0;
    int y = 0;
    int Boom = 0;
    int count = 0;
    printf("输入坐标:");
    scanf("%d%d", &x, &y);
    if (Board[x][y] == '*')
    {
        return 0;
    }
    for (int i = 1; i <= row - 2; i++)
    {
        for (int j = 1; j <= col - 2; j++)
        {
            if (Board[i][j] == ' ')
            {
                count++;
                if (count == 0)
                {
                    return 1;
                }
            }
        }
    }
    for (int i = x - 1; i <= x + 1; i++)
    {
        for (int j = y - 1; j <= y + 1; j++)  //for (int j = y - 1; j <= j + 1; j++)
        {
            if (Board[i][j] == '*')
            {
                Boom++;
            }
        }
    }
    if (Board[x][y] == ' ')
    {
        Board[x][y] = Boom;
    }
}

void PlayBoard(char Board[ROW][COL], int row, int col)
{
    int i, j = 0;
    for (i = 1; i <= row - 2; i++)
    {
        for (j = 1; j <= col - 2; j++)
        {
            printf(" %c ", Board[i][j]);
            if (j < col - 2)
            {
                printf("|");
            }
        }
        printf("\n");
        for (j = 1; j <= col - 2; j++)
        {
            if (i < col - 2)
            {
                printf("---");
                if (j < col - 2)
                {
                    printf("|");
                }
            }
        }
        printf("\n");
    }
}

void menu()
{
    printf("**************************\n");
    printf("***** 1.play  2.exit *****\n");
    printf("**************************\n");
    printf("输入1开始游戏 输入2退出游戏:\n");
}

void game()
{
    char Board[ROW][COL] = { 0 };
    ResetBoard(Board, ROW, COL);
    while (1)
    {
        int back = 0;
        Mine(Board, ROW, COL);
        printf("请输入坐标:\n");
        Play(Board, ROW, COL);
        PlayBoard(Board, ROW, COL);
        back = Play(Board, ROW, COL);
        if (back == 0)
        {
            printf("BOOOOOOOM!!!\n");
            break;
        }
        if (back == 1)
        {
            printf("获胜!\n");
            break;
        }
    }
}

int main()//自建扫雷游戏
{
    int input = 1;     //修改
    srand((unsigned int)time(NULL));//这个用的是 stdlib.h,而不是string.h
    do
    {
        menu();
        scanf("%d", &input);
        switch (input)
        {
        case 1:
            game();
            break;
        case 2:
            input = 0;             //修改
            printf("退出游戏!\n");
            break;
        default:
            input = 1;            //修改
            printf("输入错误,请重新输入!\n");
            break;
        }

    } while (input);
}