[테트리스개발] 에서는 테트리스 개발하면서 배워간것들을 기록하는 테그입니다
※유의 사항
콘솔창에 테두리를 그리기위해서 사용한 '┌', '─', '┐' 이러한 문자들의 칸수가 원하는 갯수가 안나온다
처음 ┌ 에 "─" 이것을 넣을 때는 추가되지만 마지막"┐"을 넣으면 겹쳐진다.
예를들어 마우스 커서로 선택했을때 5칸의 가로선을 하고싶다면
┌ =1개, ─ =4개 , ┐=1개
이런식으로 6개의 문자가 필요하다.
#include <stdio.h>
#include <Windows.h>
void setCursor(int x, int y) {
COORD pos = { x,y };
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), pos);
}
int main(void) {
int x= 0;
int y = 3;
int i = 0;
setCursor(x, y);
printf("┌");
for (i = 0; i < 4; i++) {
printf("─");
}
printf("┐");
return 0;
}
위 코드를 실행하면 콘솔창에 아래와같이 나온다.
저 하얀 부분이 마우스로 선택한 "─" 이 문자 하나의 크기이다
for문으로 4번 반복되었지만 앞의 ┌과 뒤의 ┐이것으로 총 6개의 가로선이 생겨야될줄알았지만
가로선은 5개가 생겼다, 뒤에 ㄱ 문자가 겹쳐진것같다.
확인 해본 결과
"─"이 문자를 한개 출력하면 마우스 커서 한칸이 아닌 두칸을 차지한다.
하지만 두개부터는 4칸이아닌 3칸을 차지한다.
아래는 "─"이 문자 두개출력한것과 한개 출력한것을 비교한것
보면 길이가 두배가 아닌 1.5배이다.
"┌" 이것은 두칸인데 뒤족한칸은 다음 선문자와 겹쳐진다
"─" 이것은 두칸이고 뒤쪽한칸은 다음 선문자와 겹쳐진다
"┐" 이건은 두칸이고 앞의한칸은 이전 선문자와 겹쳐진다
다음은 세로선
#include<stdio.h>
#include<Windows.h>
int main(void) {
int x= 1;
int y = 3;
int i = 0;
setCursor(x, y);
printf("┌");
for (i = 0; i < 2; i++) {
printf("─");
}
x = 1;
y = 4;
printf("┐");
setCursor(x, y);
printf("│");
y = 5;
setCursor(x, y);
printf("│");
return 0;
}
위와같이 세로선을 2번 출력해보면
세로로는 겹쳐지지않고 세로마우스커서는 가로마우스커서의 2배정도로 확인된다.
'programming > c , c++' 카테고리의 다른 글
[테트리스개발] 콘솔창의 종료문구가 게임보드 중간에 낀 현상 (0) | 2021.07.12 |
---|---|
[테트리스개발]c언어 난수생성 (0) | 2021.07.12 |
[테트리스개발]BOOL WINAPI 반환타입 (0) | 2021.07.11 |
(c언어) 변수에 대하여 알아야할것 (0) | 2021.05.14 |
tpyedef 키워드로 구조체만들기 (0) | 2021.05.12 |