鱼C论坛

 找回密码
 立即注册
楼主: iqingba

[技术交流] 2013.8.12上海xx网游公司的c/c++面试题

  [复制链接]
发表于 2017-11-21 16:03:55 | 显示全部楼层
想知道,C/C++工程师的程度到哪一步了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-11-21 17:13:43 | 显示全部楼层
怕是看的头晕脑胀哦
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-11-22 08:12:22 | 显示全部楼层
回复来看看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-11-22 15:35:27 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-11-22 17:25:21 From FishC Mobile | 显示全部楼层
谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-11-24 11:12:57 | 显示全部楼层
看看到底是啥
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-11-24 13:04:59 | 显示全部楼层
谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-11-27 08:59:04 | 显示全部楼层
1#
还差几 发表于 2017-8-15 17:17:39 121866 | 只看该作者 |只看大图 回帖奖励
做不好请提出
本帖隐藏的内容

#include<stdio.h>
#include<stdlib.h>
#include<windows.h>
#include<time.h>
#include<conio.h>

#define MOD 28
#define SIZE_N 19
#define SIZE_M 12

int cur_x,cur_y;
int score,mark,next,map[SIZE_N][SIZE_M],Gamespeed=300;

int shape[28][6]={
        {0,-1,0,-2,1,0}, {0,1,1,0,2,0}, {-1,0,0,1,0,2}, {0,-1,-1,0,-2,0},
        {0,-1,0,1,-1,0}, {0,1,1,0,-1,0}, {1,0,0,-1,0,1}, {1,0,-1,0,0,-1},
        {-1,1,0,1,1,0}, {0,-1,1,0,1,1}, {-1,0,0,-1,1,-1}, {-1,-1,-1,0,0,1},
        {-1,0,0,1,1,1}, {0,1,1,-1,1,0}, {-1,0,0,1,1,1}, {0,1,1,-1,1,0},
        {-1,0,0,-1,0,-2}, {-1,0,-2,0,0,1}, {0,1,0,2,1,0}, {0,-1,1,0,2,0},
        {0,1,1,0,1,1}, {0,-1,1,0,1,-1}, {-1,0,0,-1,-1,-1}, {-1,0,-1,1,0,1},
        {0,1,0,2,0,3}, {1,0,2,0,3,0}, {0,-1,0,-2,0,-3}, {-1,0,-2,0,-3,0}
};

void gotoxy(int x,int y){
        COORD c;
        c.X=x-1; c.Y=y-1;
        SetConsoleCursorPosition (GetStdHandle(STD_OUTPUT_HANDLE), c);
}
void Gameover(){
        int i,j,flag=0;
        for(j=1;j<SIZE_M-1;j++){
                if(map[1][j]!=0){
                        flag=1;break;
                }
        }
        if(flag==1){
                for(i=1;i<SIZE_N-1;i++){
                        gotoxy(2,i+1);
                        for(j=1;j<SIZE_M-1;j++){
                                printf("□");
                        }puts("");
                }
                gotoxy(7,9);
                printf("GAME OVER!");
                gotoxy(1,SIZE_N+1);
                exit(0);
        }
}
void ShowMap(int id){
        int i,j;
        gotoxy(1,1);
        if(id!=-1){
                for(i=0;i<SIZE_N;i++){
                        for(j=0;j<SIZE_M;j++){
                                if(i==0&&j==0 || i==0&&j==SIZE_M-1 || j==0&&i==SIZE_N-1 || j==SIZE_M-1&&i==SIZE_N-1)printf(" ");
                                else if(i==0 || i==SIZE_N-1)printf("--");
                                else if(j==0 || j==SIZE_M-1)printf("|");
                                else if(map[j]==2) printf("■");
                                else if(i==cur_x+shape[id][0] && j==cur_y+shape[id][1] ||
                                        i==cur_x+shape[id][2] && j==cur_y+shape[id][3] ||
                                        i==cur_x+shape[id][4] && j==cur_y+shape[id][5] ||
                                        i==cur_x && j==cur_y)
                                        printf("■");
                                else if(map[j]==0) printf("  ");        
                        }
                        if(i==1)printf("   下一个 :");
                        if(i==11)printf("   等分 :   %d",score);
                        if(i==14)printf("   速度 :   %d",score/100+1);
                        puts("");
                }
        }
        else {
                mark=1;
                for(i=0;i<SIZE_N;i++)
                {
                        for(j=0;j<SIZE_M;j++)
                        {
                                if(i==0&&j==0 || i==0&&j==SIZE_M-1 || j==0&&i==SIZE_N-1 || j==SIZE_M-1&&i==SIZE_N-1)printf(" ");
                                else if(i==0 || i==SIZE_N-1)printf("--");
                                else if(j==0 || j==SIZE_M-1)printf("|");
                                else if(map[j]==2) printf("■");
                                else if(map[j]==0) printf("  ");        
                        }
                        if(i==1)printf("   next:");
                        if(i==11)printf("   score :   %d",score);
                        if(i==14)printf("   speed :   %d",score/100+1);
                        puts("");
                }
        }
         
        gotoxy(30,6); printf("  ");
        for(i=0;i<6;i=i+2){
                gotoxy(30+2*shape[id][i+1],6+shape[id]); printf("  ");
        }
        gotoxy(30,6); printf("■");
        for(i=0;i<6;i=i+2)
        {
                gotoxy(30+2*shape[next][i+1],6+shape[next]); printf("■");
        }
        Sleep(Gamespeed);
}

void init(int id)
{
    int i,j;
        memset(map,0,sizeof(map));
        for(i=0;i<SIZE_N;i++){
                for(j=0;j<SIZE_M;j++)
                        if(i==SIZE_N-1 || j==0 || j==SIZE_M-1)
                                map[j]=-1;
        }
        cur_x=0; cur_y=5;
        ShowMap(id);
}

int judge_in(int x,int y,int id)
{
    int i;
        if(map[x][y]!=0)return 0;
        for(i=0;i<6;i=i+2)
        {
                if(map[ x+shape[id] ][ y+shape[id][i+1] ]!=0)return 0;
        }return 1;
}

void fun_score()
{
    int i,j,ii,jj;
        for(i=1;i<SIZE_N-1;i++)
        {
                int flag=0;
                for(j=1;j<SIZE_M-1;j++)
                {
                        if(map[j]!=2){ flag=1;break; }
                }
                if(flag==0)
                {
                        int k=3;
                        while(k--)
                        {
                                gotoxy(2,i+1);
                                for(ii=1;ii<SIZE_M-1;ii++)
                                {
                                        if(map[ii]==2)
                                        {
                                                if(k%2==1)printf("  ");
                                                else printf("■");
                                        }
                                }
                                Sleep(100);
                        }
                        for(ii=i;ii>1;ii--)
                        {
                                for(jj=1;jj<SIZE_M-1;jj++) map[ii][jj]=map[ii-1][jj];
                        }
                        ShowMap(-1);
                        score+=10;
                        if(score%100==0 && score!=0)Gamespeed-=50;
                }
        }
}

int main(){
      int i,id,set=1;
      int pan;
      
      printf("按1开始游戏,其他结束。\n");
      scanf("%d",&pan);
MNBVCXZ:
      if(pan==1)
      {
            srand(time(NULL));
            id=rand()%MOD; id=(id+MOD)%MOD;
            next=rand()%MOD; next=(next+MOD)%MOD;
            
            init(id);
            
            while(1)
            {
Here:        
            mark=0;
            if(set==0)
            {
                  id=next;
                  next=rand()%MOD; next=(next+MOD)%MOD;
                  cur_x=0;cur_y=5;
                  set=1;
            }
            
            while(!kbhit()){
                  Gameover();
                  if(judge_in(cur_x+1,cur_y,id)==1) cur_x++;
                  else
                  {
                        map[cur_x][cur_y]=2;
                        for(i=0;i<6;i=i+2)
                              map[ cur_x+shape[id] ][ cur_y+shape[id][i+1] ]=2;
                        fun_score();
                        set=0;
                  }
                  if(mark!=1)ShowMap(id);
                  goto Here;
            }
            
            char key;
            key=getch();
            
            if(key==72)
            {
                  int tmp=id;
                  id++;
                  if( id%4==0 && id!=0 )id=id-4;
                  if(judge_in(cur_x,cur_y,id)!=1)id=tmp;
            }
            else if(key==80 && judge_in(cur_x+1,cur_y,id)==1)cur_x++;
            else if(key==75 && judge_in(cur_x,cur_y-1,id)==1)cur_y--;
            else if(key==77 && judge_in(cur_x,cur_y+1,id)==1)cur_y++;
            else if(key==27){gotoxy(1,SIZE_N+1);exit(0);}
            }
      }
      else
      {
            printf("你真的要退出吗?按1开始游戏,其他结束。\n");
            scanf("%d",&pan);
            goto MNBVCXZ;
      }
      
      
      srand(time(NULL));
      id=rand()%MOD; id=(id+MOD)%MOD;
      next=rand()%MOD; next=(next+MOD)%MOD;
      
      init(id);
      
      while(1)
      {
HERE:        
      mark=0;
      if(set==0){
            id=next;
            next=rand()%MOD; next=(next+MOD)%MOD;
            cur_x=0;cur_y=5;
            set=1;
      }
      
      while(!kbhit()){
            Gameover();
            if(judge_in(cur_x+1,cur_y,id)==1) cur_x++;
            else
            {
                  map[cur_x][cur_y]=2;
                  for(i=0;i<6;i=i+2)
                        map[ cur_x+shape[id] ][ cur_y+shape[id][i+1] ]=2;
                  fun_score();
                  set=0;
            }
            if(mark!=1)ShowMap(id);
            goto HERE;
      }
      
      char key;
      key=getch();
      
      if(key==72)
      {
            int tmp=id;
            id++;
            if( id%4==0 && id!=0 )id=id-4;
            if(judge_in(cur_x,cur_y,id)!=1)id=tmp;
      }
      else if(key==80 && judge_in(cur_x+1,cur_y,id)==1)cur_x++;
      else if(key==75 && judge_in(cur_x,cur_y-1,id)==1)cur_y--;
      else if(key==77 && judge_in(cur_x,cur_y+1,id)==1)cur_y++;
      else if(key==27){gotoxy(1,SIZE_N+1);exit(0);}

      system("pause");

      getch();

      return 0;
      }
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-11-27 14:58:22 From FishC Mobile | 显示全部楼层
我肯定支持的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-11-27 16:15:57 | 显示全部楼层
感谢楼主分享
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-11-27 16:42:15 | 显示全部楼层
啊啊啊啊啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-11-27 22:44:49 | 显示全部楼层
学习学习。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-11-30 13:32:03 | 显示全部楼层
000
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-11-30 18:26:49 | 显示全部楼层
看看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-11-30 18:48:42 From FishC Mobile | 显示全部楼层
虽然才刚学,但还是想来观摩一下的新手
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-11-30 22:10:41 | 显示全部楼层

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-12-1 06:10:22 From FishC Mobile | 显示全部楼层
看看能不能
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-4 12:49:02 | 显示全部楼层
来看看。   
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-5 08:35:19 | 显示全部楼层
连个面向对象都没有,关c++什么事
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-5 11:56:20 | 显示全部楼层
..
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-29 09:26

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表