| [ QuizWit ] in KIDS 글 쓴 이(By): parsec ( 먼 소 류 ) 날 짜 (Date): 2003년 3월 13일 목요일 오후 05시 05분 22초 제 목(Title): 확장을 위한 업데이트 방크기를 확장할 때 문제가 있어서 다시 고쳤습니다: void draw_study(void) { int i,j; t_bookcase * bcp; init_img(); for(i=1; i<=ROOM_WIDTH; i++) for(j=1;j<=ROOM_HEIGHT;j++) { bcp = get_casep(get_caseid(i,j)); if(bcp != NULL) draw_case(bcp); } draw_door(); printf(" "); for(i=0; i<ROOM_WIDTH; i++) printf(" %2d",i+1); printf("\n"); for(i=0; i<IMG_HEIGHT; i++) printf("%c %s\n", (i%3==2 && i!=0)?'A'+i/3:' ', img_buf[i]); } int get_num(void) { int c=0; while (isspace(cmdbuf[cmdbufidx])) cmdbufidx++; while(isdigit(cmdbuf[cmdbufidx])) c = c*10 + cmdbuf[cmdbufidx++]-'0'; while (!isspace(cmdbuf[cmdbufidx])) cmdbufidx++; return c; } int get_pos(void) { int p; while (isspace(cmdbuf[cmdbufidx])) cmdbufidx++; if(islower(cmdbuf[cmdbufidx])) p = cmdbuf[cmdbufidx++]-'a'+1; else if(isupper(cmdbuf[cmdbufidx])) p = cmdbuf[cmdbufidx++]-'A'+1; else p = 0; if(isdigit(cmdbuf[cmdbufidx])) p |= (get_num() << 4); else p = 0; while (!isspace(cmdbuf[cmdbufidx])) cmdbufidx++; if(p >= 0xF0 || ((p & 0x0F) > ROOM_WIDTH)) p=0; return p; } int get_dest(void) { int d; while (isspace(cmdbuf[cmdbufidx])) cmdbufidx++; if(islower(cmdbuf[cmdbufidx])) d = cmdbuf[cmdbufidx++]-'a'+1; else if(isupper(cmdbuf[cmdbufidx])) d = cmdbuf[cmdbufidx++]-'A'+1; else d = 0; if(isdigit(cmdbuf[cmdbufidx])) d |= (get_num() <<4 ); else d = 0; while (!isspace(cmdbuf[cmdbufidx])) cmdbufidx++; if(d >= 0xF0 || ((d & 0x0F) > ROOM_WIDTH)) d=0; return d; } ... May the source be with you! |