杨小杰Blog(Youngxj)提供免费教程下载和网站搭建技术教程,主要分享和发布网站源码,致力创造一个高质量网络资源教程的分享平台

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

Young小杰2017-1-2 22:38 c语言学习笔记(0)2328小标签: c语言学习笔记

/*******扫雷游戏*********/

#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,已超过 1 年没有更新,如果文章内容或图片资源失效,请留言反馈,我们会及时处理,谢谢!

发表评论:

手机扫描二维码
阅读体验更佳