标题:推箱子多关卡地图生成
只看楼主
卡卡西西里
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2020-3-7
结帖率:0
已结贴  问题点数:20 回复次数:4 
推箱子多关卡地图生成
# include<stdio.h>
# include<conio.h>
# include<stdlib.h>
//调出地图
    void file(int map[14][16],int n,int flag) //n表示关卡数 ,flag定位位置
{
                                                                                                                                             
   
      
      FILE*fp=fopen("map.txt","r");
      if(fp==NULL)
      {
          printf("文件读取错误\n");
         
      }
      else
      for(int i=0 ;i<14 ;i++)
           {   for(int j=0 ;j<16 ;j++)
                {
                      map[i][j]=fgetc(fp);
                        
                }
             fgetc(fp);
          }
         
        
      
          if(n<=9)
       {
          flag=257*(n-1)+5;//1~9关
         
       }
      
       else
        {
         flag=257*9+258*(n-10)+6;//10~43关定位关卡数
         
         fseek(fp,flag,SEEK_SET);
       }
         
          fclose(fp) ;                                
            

  }
   



 //地图的生成
void drawmap(int map[14][16])

{   
     
     for( int i=0 ; i<14 ; i++)
     {   for( int j=0 ; j<16 ; j++)
         
      {   
               
           switch (map[i][j])
        {      
           case '0':
                           printf("  ");//空地 打入两个空格
                           break;
               case '1':
                            printf("■") ;//墙
                            break;
               case '2':
                            printf("  ");//内部空地 打入两个空格
                            break;
               case '3':
                         printf("×");//目的地
                         break;
            case '4':
                          
                          printf("◎");//箱子
                          break;
            case '5':
                         printf("☆");//箱子推到目的地后的显示
                         break;
            case '6':
                         printf("♀");//小人
                         break;
           }
           
         
         
     }      printf("\n");
             }
            
            
      
}


    int main()
{    int N,FLAG;
     int MAP[14][16];
     printf("please input your level:%d\n");
     scanf("%d",&N);
     if(N>0&&N<=43)
     {
         file(MAP,N,FLAG);
         drawmap(MAP);
     }
      
     else
     printf("Game Over!\n");
   
   
    return 0;
   
   
   
}
    为什么当我输入关卡数的时候总是出现在第一关呢?麻烦各位大佬帮我看一下
搜索更多相关主题的帖子: map int case flag printf 
2020-03-07 11:58
xianfajushi
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:8
帖 子:527
专家分:690
注 册:2007-9-8
得分:10 
提供"map.txt"内容或上载改文件,否则,没弄过的人无法去帮你做测试。
2020-03-07 16:45
return_0
Rank: 8Rank: 8
来 自:五维空间
等 级:禁止访问
威 望:3
帖 子:512
专家分:838
注 册:2020-1-28
得分:10 
你这个帖子是在c++所能触及的所有地方发了一遍啊

2020-03-09 19:54
return_0
Rank: 8Rank: 8
来 自:五维空间
等 级:禁止访问
威 望:3
帖 子:512
专家分:838
注 册:2020-1-28
得分:0 
写的的确是不错,

2020-03-09 19:54
return_0
Rank: 8Rank: 8
来 自:五维空间
等 级:禁止访问
威 望:3
帖 子:512
专家分:838
注 册:2020-1-28
得分:0 
厉害

2020-03-11 15:42



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-499612-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016898 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved