前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >扫雷游戏-c语言学习笔记

扫雷游戏-c语言学习笔记

作者头像
Youngxj
发布2018-06-07 12:10:10
8240
发布2018-06-07 12:10:10
举报
文章被收录于专栏:YoungxjYoungxj
代码语言:javascript
复制
/*******扫雷游戏*********/

#include<stdlib.h>
#include<time.h>
int main(void)
{
    int i=0;
    int j=0;
    //定义雷的个数 
    int numBomb=-1;
    //创建随机种子 ,根据时间的不同,随机数也不同 
    srand(time(0));
    //最多5颗雷
    numBomb=rand()%5+1;
    //产生5颗雷
	//每组有x,y 两个元素值 
    int arrayPos[5][2]={0};
    for( i=0;i<numBomb;i++)
    {
        int xPos=rand()%5+1;
        int yPos=rand()%5+1;
        //如果有雷的位置重合,放弃此次操作,重新产生一颗 
        for(j=0;j<5;j++)
        {
            if(xPos==arrayPos[j][0]&&yPos==arrayPos[j][1])
            {
                i--;
                continue;
            }
        }
       arrayPos[i][0]=xPos;
       arrayPos[i][1]=yPos;
    }
    //地图数组 
    int arrayMap[7][7]={0};
    //雷的布局的数组 
    int arrayBomb[7][7]={0};
    for(i=0;i<numBomb;i++)
    {
        int xPos=arrayPos[i][0];
        int yPos=arrayPos[i][i];
        arrayBomb[xPos][yPos]=1;
        arrayMap[xPos][yPos]=-1;
    }
    for(i=0;i<6;i++)
    {
        for(j=1;j<6;j++)
        {
            if(arrayMap[i][j]==-1)
            {
                continue;
            }
            arrayMap[i][j]=
                 arrayBomb[i][j-1]+
                 arrayBomb[i+1][j+1]+
                 arrayBomb[i+1][j]+
                 arrayBomb[i+1][j-1]+
                 arrayBomb[i][j+1]+
                 arrayBomb[i-1][j-1]+
                 arrayBomb[i-1][j]+
                 arrayBomb[i-1][j+1];
        }
    }
    int isExit=0;
    int arrayMask[7][7]={0};
    while(isExit==0)
    {
        for(i=1;i<6;i++)
        {
            for(j=1;j<6;j++)
            {
                if(arrayMask[i][j]==1)
                {
                    printf("%d",arrayMap[i][j]);
                }
                else
                {
                    printf("*");
                }
            }
                 printf("\n");
        }
        int choise=-1;
        printf("数组数字:\n1:雷\n2:空地\n3:退出游戏\n");
        scanf("%d",&choise);
        if(choise==3)
        {
            isExit=1;
            continue;
        }
             int xPos=-1;
             int yPos=-1;
             printf("请输入坐标:X,Y\n");
             scanf("%d%d",&xPos,&yPos);
             if(arrayMap[xPos][yPos]==-1&&choise==2)
             {
                 printf("你中雷了,游戏结束。\n");
                 for(i=0;i<7;i++)
                 {
                    for(j=0;j<7;j++)
                    {
                        printf("%3d",arrayMap[i][j]);
                    }
                    printf("\n");
                 }
                     isExit=1;
             }
             arrayMask[xPos][yPos]=1;
    }
    return 0;
}

ps;跟着老师码了一个小时的代码,最后竟然都是错误的,无奈的我只能去学习群找源码了,好丢脸!

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-1-2 22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档