c언어 - 테트리스 만들기1 - gotoxy함수
2022. 1. 27. 15:44ㆍC언어
728x90
gotoxy함수를 이용해 테트리스 테두리를 만들어보자!
# include <stdio.h>
# include <Windows.h>
void gotoxy(int x, int y);
int main(void)
{
int a, b;
for (a = 0; a < 21; a++)
{
for (b = 0; b < 21; b++)
{
if (b == 0)
{
gotoxy(a, b);
printf("ㅁ");
}
else if (b == 20)
{
gotoxy(a, b);
printf("ㅁ");
}
else
{
if (a == 0 || a == 20)
{
gotoxy(a, b);
printf("ㅁ");
}
}
}
}
return 0;
}
void gotoxy(int x, int y)
{
COORD Pos;
Pos.X = x;
Pos.Y = y;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), Pos);
}
실행시킨다면..!!
COORD란 ?
COORD의 형태
typedef struct _COORD {
SHORT X;
SHORT Y;
} COORD, *PCOORD
구조체 : 사용자가 C언어의 기본 타입을 가지고 새롭게 정의할 수 있는 사용자 정의 타입이다.
구조체는 다양한 타입의 변수집합을 하나의 타입으로 나타낼 수있다. 구조체를 구성하는 변수를 구조체의 멤버 혹은 멤버 변수라 한다.
typedef 키워드는 이미 존재하는 타입에 새로운 이름을 붙일 때 사용한다.
구조체 변수를 선언하거나 사용할 때 매번 struct 키워드를 사용하여 구조체임을 명시해야 하는데 typedef 키워드를 사용해 구조체에 새로운 이름을 선언하면 매번 struct 키워드를 사용하지 않아도 된다.
위는 _COORD라는 이름을 선언한 것.
struct 구조체이름
{
멤버변수1의타입 멤버변수1의이름;
멤버변수2의타입 멤버변수2의이름;
...
} 구조체변수이름;
결론은, COORD 라는 구조체는 선언되어있는 x, y 값을 저장하는 역할이다!
SetConsoleCursorPosition이란?
BOOL WINAPI SetConsoleCursorPosition(
_In_ HANDLE hConsoleOutput,
_In_ COORD dwCursorPosition
);
이 함수는 "콘솔의 핸들 값"과 "좌표값"을 받아, 해당 위치로 콘솔의 커서를 이동시킨다.
이상입니다.
다음에는 키보드로 ★을 테두리안에서 이동시켜 보도록 하겠습니다.
728x90
'C언어' 카테고리의 다른 글
c언어 - 테트리스 만들기 초기 설정,4 블럭 낙하 (0) | 2022.02.12 |
---|---|
c언어-테트리스만들기3, 테트리스 블럭만들기, 다차원배열 (0) | 2022.02.09 |
c언어 -테트리스 만들기2 위치 지정하기, 키보드로 움직이기 (0) | 2022.01.28 |
c언어 공부 - 거스름돈 프로그램, 계산기 프로그램, 숫자 확인 프로그램 (0) | 2022.01.27 |
c언어 공부 - 소수출력 프로그램, 대소문자 변환 프로그램 (0) | 2022.01.26 |