C语言项目

#include<stdio.h>
#include<string.h>
#include<windows.h>
#include<stdlib.h>
#include<conio.h>
#include<time.h>
#define MAP_WIDTH 10
#define MAP_HEIGHT 10
void afterMovingMap();
void moving();
int map[MAP_WIDTH][MAP_HEIGHT]={
   {1,1,1,1,1,1,1,1,1,1},
 {2,0,0,0,0,0,0,1,1,1},
 {1,1,1,0,1,1,0,1,1,1},
 {1,1,1,1,1,1,0,1,1,1},
 {1,1,1,0,0,0,0,1,1,1},
 {4,0,1,0,1,0,0,1,1,1},
 {1,0,1,0,0,0,0,0,0,4},
 {1,0,0,1,1,0,1,1,1,1},
 {1,1,0,0,0,0,0,0,0,4},
 {1,1,1,1,1,1,1,1,1,1}
 };
char j1[1000];
char q1[1000]; 
void loadingMap(int map[MAP_WIDTH][MAP_HEIGHT]){
 int z,x;
 Sleep(1000);
 printf("         游戏地图\n");
 srand(time(0));
 for(z=0;z<MAP_WIDTH;z++){
  for(x=0;x<MAP_HEIGHT;x++){
   int tmp=map[z][x];
      if(tmp==1){
    printf("■ ");
   }else if(tmp==2){
    printf("%c  ",1);
   } else if(tmp==4){
    printf("♀ ");
   }else{
      int num=rand()%20;
      if(num>=10 && num<=12){
      map[z][x]=3;
      printf("%c  ",2);
      }else{
       printf("   ");
      }
  }
 }
 printf("\n");
}

}
void ZhuChe(){
 char u[1000];
 char p[1000]; 
  printf("            注册\n");
 printf("现在注册账号:\n");
 scanf("%s",u);
 printf("现在注册密码:\n");
 scanf("%s",p);
 int a;
 for(a=0;a<strlen(u);a++){
  j1[a]=u[a];
 }
 for(a=0;a<strlen(p);a++){
  q1[a]=p[a];
 }
 printf("注册成功\n");
 printf("现在登陆账号:\n");
 printf("%s\n",j1);
 printf("现在登陆密码:\n");
 printf("%s\n",q1);
 printf("稍后就进入登录页面!");
 Sleep(1000); 
 system("cls");
}
void DengLu(){
 char u[1000];
 char p[1000];
 int a;
 printf("            登录\n");
 for(a=0;a<=2;a++){           
 printf("请输入登录账号:\n");
 scanf("%s",u);
 printf("请输入登录密码:\n");
 scanf("%s",p);
  if(strcmp(u,j1)==0&& strcmp(p,q1)==0){
   Sleep(1000);
   system("cls");
   printf("密码正确。进入游戏!\n");
   Sleep(1000);
   system("cls");  
   break;   
  }
   if(a==2){
    printf("密码错误,请返回重新登录!\n");
    break; 
    }      
   
             
  }
}
int BeiJing(){
 int a,c;
 printf("                  游戏背景\n");
    char b[]="大千世界,位面交汇,万族林立,群星荟萃,一位位来自下位面的天之至尊,\n"
 "在这无尽世界,演绎着令人向往的传奇,追求着那主宰之路。无尽火域,炎帝执掌,\n"
 "万火焚苍穹。武境之内,武祖之威,震慑乾坤。西天之殿,百战之皇,战威无可敌。\n"
 "北荒之丘,万墓之地,不死之主镇天地。\n\n";
  for(a=0;a<=strlen(b);a++){
   printf("%c",b[a]);
    Sleep(10);
  }
}

int roley=1,rolex=0;
void moving(){
 int running=2;
 char c;
 while(running){
  c=getch();
  if(c=='w'){
   int temp=map[roley-1][rolex];
   if(temp==0){
    map[roley-1][rolex]=2;
    map[roley][rolex]=0;
    roley--;
   }
  }
  if(c=='s'){
   int temp=map[roley+1][rolex];
   if(temp==0){
    map[roley+1][rolex]=2;
    map[roley][rolex]=0;
    roley++;
   }
  }
  if(c=='a'){
   int temp=map[roley][rolex-1];
   if(temp==0){
    map[roley][rolex-1]=2;
    map[roley][rolex]=0;
    rolex--;
   }
  }
  if(c=='d'){
   int temp=map[roley][rolex+1];
   if(temp==0){
    map[roley][rolex+1]=2;
    map[roley][rolex]=0;
    rolex++;
   }
  }
  system("cls");
  afterMovingMap();
 }
}

void afterMovingMap(){
 int z,x;
 srand(time(0));
  for(z=0;z<MAP_WIDTH;z++){
   for(x=0;x<MAP_HEIGHT;x++){
    int tu=map[z][x];
    if(tu==1){
     printf("■");
    }else if(tu==2){
     printf("%c ",1);
     roley=z;
     rolex=x;
    }else if(tu==4){
     printf("♀");
    }else if(tu==3){
     printf("%c ",2);
   } else if(tu==0){
    printf("  ");
   }
  }
  printf("\n");
 };
}


int main(){
 int i,a;
   int map[MAP_WIDTH][MAP_HEIGHT]={
    {1,1,1,1,1,1,1,1,1,1},
 {2,0,0,0,0,0,0,1,1,1},
 {1,1,1,0,1,1,0,1,1,1},
 {1,1,1,1,1,1,0,1,1,1},
 {1,1,1,0,0,0,0,1,1,1},
 {0,0,1,0,1,0,0,1,1,1},
 {1,0,1,0,0,0,0,0,1,1},
 {1,0,0,1,1,0,1,1,1,1},
 {1,1,0,0,0,0,0,0,0,4},
 {1,1,1,1,1,1,1,1,1,1}
 };
 printf("进入游戏:\n");
 printf("1.注册   2.登陆\n");
 printf("您选择:");
 scanf("%d",&i);
 Sleep(1000);
  system("cls");
 switch (i){
  case 1:ZhuChe();
  case 2:DengLu();break;
  Sleep(1000);
        system("cls");
 }
 Sleep(1000);
  system("cls");
  printf("进入游戏:\n");
 printf("1.开始游戏   2.背景    3.地图\n");
 printf("您选择:");
 scanf("%d",&a);
 Sleep(1000);
  system("cls");
  switch(a){
   case 1:{
    loadingMap(map);
    moving();
         afterMovingMap();
   
   } break;
        case 2:BeiJing(); break;
        case 3:loadingMap(map); break; 
  }   
 return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值