같은 코드인데 반복 실행하면 저렇게 두 개 결과가 나옵니다. 밑에 틀어진 부분은 x 값 자체가 7칸인가 땡겨져서 124에 배치하고 싶으면 x값을 117로 입력 해야하네요 ㄱㅡ;;
아래 짤에서 클릭드래그 하고 풀면
이렇게 다시 맞춰집니다.
대체 이런 이유가 뭐죠? 어떻게 해결할 수 있나요. C언어 밖에 모릅니다. 제발 답변 좀
/*칸 나누기*/
void frame(void) {
x = 0;
for (y = 1;y <= 36;y++) {
gotoxy(x, y);
if (y >= 1 && y <= 5||y>=31&&y<=35)
printf(" ┃ ┃ ┃ ┃ ┃ ┃ ");
else if (y == 6)
printf(" ━━━━━━━━━╋ ┻ ┻ ┻ ┻ ╋━━━━━━━━━ ");
else if (y > 6 && y < 30) {
if (y % 6 == 0)
printf(" ━━━━━━━━━┫ ┣━━━━━━━━━ ");
//else
//printf(" ┃ ┃");
}
else if (y==30)
printf(" ━━━━━━━━━╋ ┳ ┳ ┳ ┳ ╋━━━━━━━━━ ");
}
}
void rem_turn(int *x) {
int t = 27;
int par, x_s = 60;
do {
if (x_s == 60) {
par = t / 10;
}
else if (x_s == 71) {
par = t % 10;
}
switch (par) {
case 1:
gotoxy(x_s, 7); printf("□□■□□");
gotoxy(x_s, 8); printf("□■■□□");
gotoxy(x_s, 9); printf("□□■□□");
gotoxy(x_s,10); printf("□□■□□");
gotoxy(x_s,11); printf("□□■□□");
gotoxy(x_s,12); printf("□□■□□");
gotoxy(x_s,13); printf("□■■■□");
break;
case 2:
gotoxy(x_s, 7); printf("□■■■□");
gotoxy(x_s, 8); printf("■□□□■");
gotoxy(x_s, 9); printf("■□□□■");
gotoxy(x_s,10); printf("□□□■□");
gotoxy(x_s,11); printf("□□■□□");
gotoxy(x_s,12); printf("□■□□□");
gotoxy(x_s,13); printf("■■■■■");
break;
case 3:
gotoxy(x_s, 7); printf("□■■■□");
gotoxy(x_s, 8); printf("■□□□■");
gotoxy(x_s, 9); printf("□□□□■");
gotoxy(x_s,10); printf("□□■■□");
gotoxy(x_s,11); printf("□□□□■");
gotoxy(x_s,12); printf("■□□□■");
gotoxy(x_s,13); printf("□■■■□");
break;
case 4:
gotoxy(x_s, 7); printf("□□□■□");
gotoxy(x_s, 8); printf("□□■■□");
gotoxy(x_s, 9); printf("□■□■□");
gotoxy(x_s,10); printf("■□□■□");
gotoxy(x_s,11); printf("■■■■■");
gotoxy(x_s,12); printf("□□□■□");
gotoxy(x_s,13); printf("□□□■□");
break;
case 5:
gotoxy(x_s, 7); printf("■■■■■");
gotoxy(x_s, 8); printf("■□□□□");
gotoxy(x_s, 9); printf("■□□□□");
gotoxy(x_s,10); printf("■■■■■");
gotoxy(x_s,11); printf("□□□□■");
gotoxy(x_s,12); printf("■□□□■");
gotoxy(x_s,13); printf("□■■■□");
break;
case 6:
gotoxy(x_s, 7); printf("□■■■□");
gotoxy(x_s, 8); printf("■□□□■");
gotoxy(x_s, 9); printf("■□□□□");
gotoxy(x_s,10); printf("■■■■□");
gotoxy(x_s,11); printf("■□□□■");
gotoxy(x_s,12); printf("■□□□■");
gotoxy(x_s,13); printf("□■■■□");
break;
case 7:
gotoxy(x_s, 7); printf("■■■■■");
gotoxy(x_s, 8); printf("■□□□■");
gotoxy(x_s, 9); printf("■□□□■");
gotoxy(x_s,10); printf("□□□□■");
gotoxy(x_s,11); printf("□□□■□");
gotoxy(x_s,12); printf("□□□■□");
gotoxy(x_s,13); printf("□□□■□");
break;
case 8:
gotoxy(x_s, 7); printf("□■■■□");
gotoxy(x_s, 8); printf("■□□□■");
gotoxy(x_s, 9); printf("■□□□■");
gotoxy(x_s,10); printf("□■■■□");
gotoxy(x_s,11); printf("■□□□■");
gotoxy(x_s,12); printf("■□□□■");
gotoxy(x_s,13); printf("□■■■□");
break;
case 9:
gotoxy(x_s, 7); printf("□■■■□");
gotoxy(x_s, 8); printf("■□□□■");
gotoxy(x_s, 9); printf("■□□□■");
gotoxy(x_s,10); printf("□■■■■");
gotoxy(x_s,11); printf("□□□□■");
gotoxy(x_s,12); printf("■□□□■");
gotoxy(x_s,13); printf("□■■■□");
break;
case 0:
gotoxy(x_s, 7); printf("□■■■□");
gotoxy(x_s, 8); printf("■□□□■");
gotoxy(x_s, 9); printf("■□□□■");
gotoxy(x_s,10); printf("■□□□■");
gotoxy(x_s,11); printf("■□□□■");
gotoxy(x_s,12); printf("■□□□■");
gotoxy(x_s,13); printf("□■■■□");
break;
}
x_s += 11;
} while (x_s <= 71);
}
/*땅 상태 출력*/
void land_state(void) {
int i;
for (i = 0;i <= 21;i++) {
if (i >= 0 && i <= 5) {
gotoxy(4, 31 - 6 * i);
printf("%s", land[i]->name);
}
else if (i >=6 && i <= 11) {
gotoxy(4 + 19 * (i-5), 1);
printf("%s", land[i]->name);
}
else if (i >= 12 && i <= 15) {
gotoxy(124, 7 + 6 * (i - 12));
printf("%s", land[i]->name);
}
else {
gotoxy(117 - 19 * (i - 16), 31);
printf("%s", land[i]->name);
}
}
}
와... 근성 인정
제발 답변 좀!!!!!!!!!!!!!!
장잉정신...
콘솔로 하면 지우는게 아니라 버퍼에 덮어써서 저따위로 될걸
TUI는 안하는게 정신건강에 이로움 할거면 GUI로 해서 텍스트로 구현하던가 CLI에선...
ㄴ 그렇다면 출력 버퍼만 계속 비워주면 정상출력 ㅆㄱㄴ??????????????????????
왼쪽 아래 (null) 여기서 ) 가 출력이 안되잖아. 그쪽부분 디버깅해봐