精华内容
下载资源
问答
  • 扫雷游戏

    2017-10-22 20:48:55
    扫雷游戏

    猜数字游戏:
    http://blog.csdn.net/romantic_c/article/details/78135924
    三子棋:
    http://blog.csdn.net/romantic_c/article/details/78311056
    关机程序:
    http://blog.csdn.net/romantic_c/article/details/78093507

    这里写图片描述

    头文件

    #ifndef __GAME_H__
    #define __GAME_H__
    
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <time.h>
    
    #define ROWS 11
    #define COLS 11
    #define COUNT 10
    
    void init_game(char mine[ROWS][COLS],char show[ROWS][COLS]);   //初始化扫雷界面
    void set_mine(char mine[ROWS][COLS]);    //设置雷区
    void display(char show[ROWS][COLS]);   //打印出界面
    void sweep(char mine[ROWS][COLS], char show[ROWS][COLS]);  //开始扫雷
    int get_mine(char mine[ROWS][COLS], int x, int y);   //附近雷的个数
    
    #endif//__GAME_H__
    

    源文件

    #include "game.h"
    
    void init_game(char mine[ROWS][COLS],char show[ROWS][COLS])//初始化扫雷界面
    {
        int i=0;
        int j=0;
        for(i=0;i<ROWS;i++)
        {
            for(j=0;j<COLS;j++)
            {
                mine[i][j]='0';
                show[i][j]='*';
            }
        }
    }
    
    void display(char show[ROWS][COLS])  //打印出界面
    {
        int i = 0;
        int j = 0;
        printf(" ");
        for (i = 1; i < COLS - 1; i++)
        {
            printf(" %d ", i);
        }
        printf("\n");
        for (i = 1; i < ROWS - 1; i++)
        {
            printf("%d", i);
            for (j = 1; j < COLS - 1; j++)
            {
                printf(" %c ", show[i][j]);
            }
            printf("\n");
        }
    }
    
    
    void set_mine(char mine[ROWS][COLS])   //设置雷区
    {
        int count = COUNT;
        int x = 0;
        int y = 0;
        srand((unsigned)time(NULL));
        while (count)
        {
            x = rand()%9+1;
            y = rand()%9+1;
            if (mine[x][y] == '0')
            {
                mine[x][y] = '1';
                count--;
            }
        }
    }
    
    
    int get_mine(char mine[ROWS][COLS], int x, int y)   //附近雷的个数
    {
        int count = 0;
        if (mine[x - 1][y - 1] == '1') count++; //坐标位置的上3个
        if (mine[x - 1][y] == '1') count++;
        if (mine[x - 1][y + 1] == '1') count++;
    
        if (mine[x][y - 1] == '1') count++;  //坐标位置的左右
        if (mine[x][y + 1] == '1') count++;
    
        if (mine[x + 1][y - 1] == '1') count++; //坐标位置的下3个
        if (mine[x + 1][y] == '1') count++;
        if (mine[x + 1][y + 1] == '1') count++;
    
        return count;
    }
    
    void sweep(char mine[ROWS][COLS], char show[ROWS][COLS])//开始扫雷
    {
        int count = 0;
        int x = 0;
        int y = 0;
        while(count!=((ROWS-2)*(COLS-2)-COUNT))
        {
            printf("\n");
            printf("请输入坐标>:");
            scanf("%d%d", &x, &y);
            if (mine[x][y] == '1')
            {
                printf("踩雷了!\n");
                display(mine);
                return;
            }
            else
            {
                int ret = get_mine(mine, x, y);
                show[x][y] = ret + '0';
                printf("\n");
                display(show);
                count++;
            }
        }
        printf("恭喜你赢了!\n");
        display(mine);
    }
    
    
    #include <stdio.h>
    #include <windows.h>
    #include <stdlib.h>
    #include <time.h>
    #include "game.h"
    
    void game()//游戏函数
    {
        char mine[ROWS][COLS];
        char show[ROWS][COLS];
        srand((unsigned)time(NULL));
        init_game(mine, show);
        display(show);
        set_mine(mine);
        sweep(mine, show);
    }
    
    
    void menu()//菜单函数
    {
        printf("-------------------------\n");
        printf("--------- 1.play --------\n");
        printf("--------- 0.exit --------\n");
        printf("-------------------------\n");
    }
    
    int main()
    {
        int input=0;
        int i=0;
        do
        {
            if(i!=0)
            {
                Sleep(5000);//延迟
            }
            system("cls");//清屏
            i=1;
            menu();
            printf("请选择>:");
            scanf("%d",&input);
            switch(input)
            {
            case 1:game();
                break;
            case 0:
                break;
            default: printf("选择错误,请重新选择\n");
                i=0;
                break;
            }
        }
        while(input);
        return 0;
    }
    
    展开全文

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,050
精华内容 2,020
关键字:

扫雷游戏