본문 바로가기

분류 전체보기

(273)
[C언어] 초보자도 구현할 수 있는 테트리스 게임 만드는법 ep.2 커서다루기, 블럭 응용 실전편 안녕하세요^^ 두 번째 글이네요. 이번에는 테트리스를 구현하기 위해서 반드시 알아야할 지식들을 소개하겠습니다. 아래의 커서관런, 키보드관련,난수생성 에 대한 함수는 반드시 알아야 합니다!!!! 2021.09.11 - [C언어] - [C언어] 초보자도 구현할 수 있는 테트리스 게임 만들기 ep.1 전반적인 개요(with tetris Algorith) 테트리스 게임 만들기(커서,블럭 응용) 기본적으로 알아야 할 커서 관련 func GotoXY(), kbhit(), getch() 키보드 이벤트 받아주는 hbhit(), getch() 콘솔창에 보여지는 블록(회전, 4차원 배열 등) 이해하기 회전 상태의 블럭 출력 방법 테트리스 4차원 블럭 종류 선언 블럭 관련 주의사항 테트리스 게임 보드(판) 생성, 선언하기 ..
[C언어] 초보자도 구현할 수 있는 테트리스 게임 만들기 ep.1 전반적인 개요(with tetris Algorith) 여러분 안녕하세요! 2021.09.10 - [C언어/프로젝트] - [C언어] C언어로 테트리스를 만들면서 느낀 점(you can do it)_ 윗글은 테트리스를 만들면서 짧게 쓴 제 후기입니다. 이번 포스트는 C Language로 콘솔창에서 테트리스 게임을 만들기 전에 숙지하면 좋을 개념과 요구사항을 알려드리려고 합니다. 먼저 짧게 요구사항을 소개한 후에, 제가 개발하면서 느낀 경험을 바탕으로 어떻게 이런 요구사항들이 도출됬는지 실제로 제가 고민하고 매번 새롭게 직면한 문제들과 해결하기위해 필요한 개념이 무엇인지를 도출해내는 제 스토리 기반으로 풀어서 소개하려고 합니다. 그 전에, 제가 만든 테트리스 영상입니다: ) 테트리스 만들기 전 필수 준비 사항 1. 나는 "꾸준함"과 "인내심"이 있는가? 2. 메..
[C언어] 연결리스트(linkedList)와 원형 연결리스트! _C로배우는 쉬운 자료구조 C로 배우는 쉬운 자료구조를 참고했습니다. 안녕하세요!! (순차 자료구조와 연결 자료구조의 차이점을 알고 싶다면?) (아래 링크 참고해주세요!!) 2021.08.28 - [자료구조] - [C언어] 2차원, 3차원 배열을 통한 순차 자료구조의 사용 예시(테트리스 블록, 휴대폰 판매량, 선형 list) 삽입, 삭제 연산 이후 '연속적' 성질을 유지하기 위해 데이터의 추가 이동을 해주어야 하는 순차 자료와 달리!! 연결 자료구조란? '동적할당' 필요한 갯수만큼의 (데이터) 노드를 각각 동적 할당 후, 해당 데이터들을 이어주는 방식입니다. 다시 말해서 데이터와 데이터가 연결되어 구현되는 방식이라서, 메모리 사용의 비효율성 문제가 없습니다. 줄줄이 소시지, 또는 화물칸을 실은 기차를 연상할 수 있습니다. 어라? ..
[C언어] _kbhit(),getch()함수를 사용해 콘솔창에서 방향키 사용하는 방법!!! 오늘은 방향키를 통해 콘솔 창에서 방향키 인식 및 이동하는 방법에 대해서 알려드리겠습니다. + 깜빡깜빡거리는 커서 숨기는 함수까지!! _kbhit() 함수 방향키를 인식하기 전에 conio.h 헤더 파일에 들어있는, _kbhit()함수를 사용해야 합니다. _kbhit 이 함수는 키를 누른 경우 0이 아닌 값을 반환합니다. 따라서 키보드에 key를 누른 경우 0이 아닌 해당 key 값을 버퍼로 저장합니다. (버퍼란 scanf()함수 등 을 통해 입력을 받으면, 화면에 출력되기 전까지 임시적으로 입력한 값들을 저장하는 메모리 상의 공간!!이라고 생각하시면 편합니다^..^) 따라서 버퍼에 저장된 key 값을 _getch()함수를 통해서 받아야 합니다. 이때 _getch()함수는 콘솔에서 단일 문자를 읽습니다!..
[C언어] GotoXY()함수로 콘솔 창의 커서를 내 마음대로 이동하는 방법 커서 이동함수 GotoXY() C언어로 게임을 만들기 위한 첫번째 단계는 바로 GotoXY()함수를 통해 커서를 원하는 곳으로, 자유 자제로 이동하는 방법을 알아야 합니다!! GotoXY()함수를 사용하기 위해선 #include 헤더파일을 선언해 준 다음에!! void GotoXY(int x, int y) { COORD Pos; Pos.X = x; Pos.Y = y; SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), Pos); } 위와 같이 함수를 선언해 주시면 됩니다!! 그 후 내가 콘솔창의 원하는 좌표 값을 GotoXY의 매개변수로 x, y값을 보내면 해당 좌표로 이동하게 됩니다. !!!! TMI,, COORD가 무엇인가요??? COORD의 정의를..
[C언어] 콘솔창에 출력되는 글자색 바꾸는 방법 안녕하세요!! 오늘은 콘솔 창에 출력된 글자들의 글자 색을 변경하는 함수를 알려드리겠습니다 Todo : 콘솔창에 출력되는 글자 색 변경! 선언 해야 할 헤더 파일, 함수 선언 컬러 변경 쉽게 할 수 있도록 함수로 선언 매개변수로 숫자를 지정하면 콘솔 창에서 색이 변한다! 컬러 번호 한가지 꿀 팁! enum 선언하기 enum 활용법 선언 해야 할 헤더 파일, 함수 선언 다만, 함수를 사용하기 위해선 Windows.h 헤더파일을 선언해주어야 합니다!! #include 헤더 파일 선언 후 SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), colorNum); 이 함수를 선언 후 color_number에 원하는 색깔의 int형 숫자를 입력하면 되는데요. 컬러 변..
[모각코] 아이 두! C언어 심화( 게임 만들기) 8월 과정 수료 후기 대외활동 "모각코" 모여서 각자 코딩!!!!하자+_+ C언어를 통해 재밌었던 15일간의 배움이었습니다. 드디어 GotoXY() 함수와 커서 다루는 함수를 이해하고 자유자재로 사용할 수 있다니 (감격..) "오늘의 코메!" 데일리 프로젝트 인증에서 댓글 수와 좋아요가 많아야 될 수 있는 "오늘의 코메"에 선정되거나, 출석 인증을 빠짐없이 하면 받을 수 있습니다!! 저 또한 오늘의 코메에 선정되기 위해 열심히 코드를 구현후 클린 하게 재구성했습니다. (A+,, 높을수록 좋지 +_+) 주변 지인이 "야!! 너 게임 관심 있다며? '모각 코'라고 대외활동 있는데 거기서 C언어 심화는 게임 만든데!!" , "진짜? 바로 신청해야겠다"라고 들뜬 마음에 신청기간을 봤는데 이미 진행 중이었습니다.... ㅜㅜ 그래서 실..
[C언어] 2차원, 3차원 배열을 통한 순차 자료구조의 사용 예시(테트리스 블록, 휴대폰 판매량, 선형 list) 순차 자료구조란? 데이터는 다양한 방식으로 저장될 수 있는데, 메모리에 저장된 물리적 위치가 연속적으로 저장된 경우를 순차 자료구조라고 합니다. C에서는 배열을 통해서 순차 자료구조를 표현합니다. 그래서 메모리에 저장된 시작 위치를 알면 특정 자료의 위치를 쉽게 알 수 있다는 장점이 있습니다. 반면에 자료들이 연속적으로 저장되어있어, 특정 자료를 특정 위치에 삽입하거나, 삭제할 경우 특정위치 뒤에있는 자료들을 모두 한칸씩 뒤로 이동해서 자리를 비워주거나, 특정위치에 삭제할 자료 뒤에있는 자료들을 모두 한칸씩 앞 당겨야 한다는 번거로운 단점이 있습니다. 순차 자료구조의 사용 예시 순차 표현의 사용 예시로 첫번째는 테트리스의 블록 표현 방법이 예시가 있습니다. 테트리스 블록 한개를 예로들어서, 이 블록의 표..