순수 C언어로만 콘솔 게임을 만들려고 하는대요...
사과
질문 제목 : c언어로만 콜솔 게임 을 하나 만들려고 합니다만게임을 짜기위해 필요한 공부나 이런 것을 좀알고 싶습니다.
ex) 배열 함수화 등등질문 내용 :게임을 짜기위해 필요한 공부나 이런 것을 좀알고 싶습니다.
ex) 배열 함수화 등등
------다시 배열과 포인터를 사용해서 만들 꺼지만 현재 만들다가 답이없어서 잠시보류중인 제뱀게임 소스입니다-------------#include windows.h //goto문 사용 하기위해
#include stdio.h
#include conio.h//get함수
#include stdlib.h//exit함수
#include string.h
#include time.h
enum { // 색깔 지정
block, /* 0 : 까망 */
dark_blue, /* 1 : 어두운 파랑 */
dark_green, /* 2 : 어두운 초록 */
dark_sky_blue, /* 3 : 어두운 하늘 */
dark_red, /* 4 : 어두운 빨강 */
dark_voilet, /* 5 : 어두운 보라 */
dark_yellow, /* 6 : 어두운 노랑 */
gray, /* 7 : 회색 */
dark_gray, /* 8 : 어두운 회색 */
blue, /* 9 : 파랑 */
green, /* 10 : 초록 */
sky_blue, /* 11 : 하늘 */
red, /* 12 : 빨강 */
voilet, /* 13 : 보라 */
yellow, /* 14 : 노랑 */
white, /* 15 : 하양 */
};
void setcolor(int color) // 문자 색깔 변경을 위한 함수.
{
setconsoletextattribute(getstdhandle(std_output_handle), color );
}
#define esc 27
#define left 75
#define right 77
#define up 72
#define down 80
void map(void);
int move1(int m);//상하 함수
int move2(int v);//좌우 함수
void game(void); //게임 시작전 배너.
void food(void);
int food_num;//먹이 갯수
int len=3;
void gotoxy(int x,int y)
{
coord pos={x,y};// 좌표의 기본 값은 0,0 입니다.
setconsolecursorposition(getstdhandle(std_output_handle), pos);
}
int x,y;// 좌표 방향 설정 함수
int gap;// 뱀의 움직임이 끊기 지않고 계속 움직이게.
int main(void)
{
int key;
x=4, y=1;// 뱀이 나타날 장소.
game();
map();
food();
gotoxy(x,y);// 좌표 설정
setcolor(green);
puts($);
while(1)//방향 입력
{
if (kbhit())
{
fflush(stdin);
key=getch();
switch(key)
{
case up:
gap=-1;
move1(gap);
break;
case down:
gap=1;
move1(gap);
break;
case right:
gap=1;
move2(gap);
break;
case left:
gap=-1;
move2(gap);
break;
case esc:
gotoxy(30,13);
printf(게임끝입니다. \n);
exit(0);
break;
}
}
}
return 0;
getch();
}int move1(int m)// 상하 이동 함수
{
int ch;
while(1)
{
if(kbhit())
{
ch=getch();
if(ch==72)
{
m=-1;
}
if(ch==80)
{
m=1;
}
&nbnbsp;if(ch==75 || ch==77 || ch==27)
sleep(1);//슬림프를 넣어줌으로써 멈춤 현상 제거
{
return 0;
}
}
sleep(50);
gotoxy(x,y);
printf( );//잔상 제거용
gotoxy(x, y=y+(m));
if(y=23)
{
y=22;//충돌 좌표
gotoxy(35, 10);
printf(죽엇습니다.);
exit(1);}
if(y==0)
{
y=1;//좌표 초기화gotoxy(35, 10);
printf(죽엇습니다.);
exit(1);
getch();
}
gotoxy(x,y);
setcolor(green);
printf($);
}
return 0;
}
int move2(int v)
{
int ch;
while(1)
{
if(kbhit())
{
ch=getch();
if(ch==75)
{
v=-1;
}
if(ch==77)
{
v=1;
}
if(ch==72 || ch==80 || ch==27)// 위의 키외에 다른 키를 눌렷을시 프로그램을 끝내고 다른 방향 함수 실행.
sleep(1);//슬림프를 넣어줌으로써 멈춤 현상 제거
{
return 0;
}
}
sleep(50);
gotoxy(x,y);
printf( );
gotoxy(x=x+(v), y);
if(x==76)
{
x=75;
gotoxy(35, 10);
printf(죽엇습니다.);
exit(1);
}
if(x==2)
{
x=3;//좌표 초기화
gotoxy(35, 10);
printf(죽엇습니다.);
exit(1);
}if(y=23)
{
y=22;
gotoxy(35, 10);
printf(죽엇습니다.);
exit(1);
}
if(y==0)
y=1;//좌표 초기화
gotoxy(x, y);
printf($);
setcolor(green);}
return 0;
}
void game(void)
{
gotoxy(0,2);
setcolor(dark_yellow);
printf(□□■■■□□□■■□□□■■□□□■■■□□□■■□□□■■□■■■■■■■\n);
printf(□■■■■■□□■■□□□■■□□■■■■■□□■■□□□■■□■■■■■■■\n);
printf(■■■□■■■□■■□□■■■□□■■□■■□□■■□□■■■□■■□□□□□\n);
printf(■■□□□□□□■■□□■■■□□■■□■■□□■■□■■■□□■■□□□□□\n);
printf(■■□□□□□□■■□■■■■□■■■□■■■□■■■■■□□□■■□□□□□\n);
printf(■■■■□□□□■■□■□■■□■■□□□■■□■■■■□□□□■■■■■■■\n);
printf(□■■■■■□□■■□■□■■□■■□□□■■□■■■□□□□□■■■■■■■\n);
printf(□□□□■■■□■■□■□■■□■■■■■■■□■■■■□□□□■■□□□□□\n);
printf(□□□□□■■□■■■■□■■□■■■■■■■□■■■■■□□□■■□□□□□\n);
printf(□□□□□■■□■■■□□■■□■■□□□■■□■■□■■■□□■■□□□□□\n);
printf(■■■□■■■□■■■□□■■□■■□□□■■□■■□□■■■□■■□□□□□\n);
printf(□■■■■■□□■■□□□■■□■■□□□■■□■■□□□■■□■■■■■■■\n);
printf(□□■■■□□□■■□□□■■□■■□□□■■□■■□□□■■□■■■■■■■\n);
setcolor(red);
gotoxy(28,16);
printf(new game loading);
gotoxy(25,18);
printf(press key to game start);
getch();
system(cls);
}
void map(void)
{
setcolor(sky_blue);
printf( ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩\n);
gotoxy(1,1);
printf(▩ ▩\n);
gotoxy(1,2);
printf(▩ ▩\n);
gotoxy(1,3);
printf(▩ ▩\n);
gotoxy(1,4);
printf(▩ ▩\n);
gotoxy(1,5);
printf(▩p; ▩\n);
gotoxy(1,6);
printf(▩ ▩\n);
gotoxy(1,7);
printf(▩ ▩\n);
gotoxy(1,8);
printf(▩ ▩\n);
gotoxy(1,9);
printf(▩ ▩\n);
gotoxy(1,10);
printf(▩ ▩\n);
gotoxy(1,11);
printf(▩ ▩\n);
gotoxy(1,12);
printf(▩ ▩\n);
gotoxy(1,13);
printf(▩ ▩\n);
gotoxy(1,14);
printf(▩ ▩\n);
gotoxy(1,15);
printf(▩ ▩\n);
gotoxy(1,16);
printf(▩▩\n);
gotoxy(1,17);
printf(▩p; ▩\n);
gotoxy(1,18);
printf(▩ ▩\n);
gotoxy(1,19);
printf(▩ ▩\n);
gotoxy(1,20);
printf(▩ ▩\n);
gotoxy(1,21);
printf(▩ ▩\n);
gotoxy(1,22);
printf(▩ ▩\n);
gotoxy(1,23);
printf(▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩\n);
}
void food(void)
{
int x,y;}
-
아서
그래도 저는 이런 근성을 내기 힘들것 같군여;;;
역시 플밍은 인내의 완성이군 흐얽기;; -
촉촉한 초코칩
ㄷㄷㄷ. 감사합니다
-
꿈
헐 엄청난 노가다가 눈에 선합니다....
엄청난 도트...! -
딥자두
됩니다 ㅎㅎ
-
캐릭터
네 ㅎㅎ 정말감사합니다 지금살펴봣는대 많은도움이 됫어요 ㅎㅎ 정말감사합니다
-
박애교
제가 말한 순수한 C언어는 표준함수만을 이용하는 프로그래밍을 뜻합니다. SetConsoleCursorPosition함수나 getch함수는 시스템에 종속적인 함수이기 때문에 순수한 C라고 보기는 힘듭니다.
원하는 것은 도스창에서 동작하는 게임을 말하는 것 같으니 제가 말한 강좌를 살펴보세요. -
쇼코홀릭
지금 열혈C프로그래밍 (윤성우의) 450 페이지 까지 본 상태 이구요 현재 스네이크 게임을 만드는 중입니다;;
-
이름이없다고
순수하게 C언어만으로는 게임을 짜기 매우 어렵습니다.
사용자의 키보드 입력 타이밍과 실제로 프로그램이 받아들이는 타이밍이 천문학적으로 크기 때문에 텍스트 입력을 통한 명령형 게임이 아닌 이상 불가능하다고 보아야 합니다.
순수함을 벗어나서 그나마 도스창에서 돌아가는 게임을 만들려면 장편강좌에서 푸시푸시나 인베이더 강좌를 살펴보세요.
그보다는 우선 C언어 입문서를 아무것이나 한권 사서 차근차근 따라가는 것부터 해야 합니다. -
메이커
테트리스는 아니고 뱀게임요 ㅎㅎ
-
아리알찬
테트리스 만드실려구 그러시나 ㅋ
번호 | 제 목 | 글쓴이 | 날짜 |
---|---|---|---|
2685477 | 소수점이하 출력하는거요 | 널위해 | 2025-02-18 |
2685449 | printf배우고있는데요 궁금한게있어요 (8) | 꽃큰 | 2025-02-18 |
2685393 | c언어 질문이요.... | 붕붕 | 2025-02-18 |
2685365 | 윈도우7에서 visual studio c++6.0 (1) | 빛길 | 2025-02-17 |
2685317 | segmentation fault가 나요 | 가람 | 2025-02-17 |
2685292 | 다중스택질문 | 올해1살 | 2025-02-17 |
2685231 | C언어와 닷넷에 대해서 질문!! (2) | 설아 | 2025-02-16 |
2685206 | VisualBasic 과 DEV++ 의 장단점과 만든 파일 호환 가능하나요? | 에드워드 | 2025-02-16 |
2685154 | 배열 크기조절 | 해찬솔 | 2025-02-15 |
2685124 | 수정이거 제가 뭐가 잘못한거죠 ? | 아이돌 | 2025-02-15 |
2685096 | 포인터의 고수분들 모두 보세요!! 제발 ㅠ_ㅠ 헷갈려헷갈려..갈려헷.. (7) | 치킨마루 | 2025-02-15 |
2685045 | 전처리기 질문 | 치에미 | 2025-02-14 |
2685016 | 오류 좀 확인해 주시면 감사하겠습니다 | 초코맛사탕 | 2025-02-14 |
2684917 | 알고리즘을 이용한 행렬의 전치// 문제다운 문제네요. | 뿡뿡 | 2025-02-13 |
2684868 | 양방향 연결리스트에서 실행도중 죽는 이유좀 찾아주세요. (2) | 예다움 | 2025-02-13 |
2684844 | 시계프로그램인데 도저히 모르겠어요ㅠ (1) | 비내리던날 | 2025-02-12 |
2684812 | 레포트좀도와주세요ㅠㅠ (2) | 갈매빛 | 2025-02-12 |
2684780 | 채팅창 흉내내보려고하는데요 ㅜ.ㅜ (1) | 바름 | 2025-02-12 |
2684729 | 내일 시험인데 메모리 그리는것좀 도와주세요 ㅠ (1) | 상처주지마 | 2025-02-11 |
2684701 | 버퍼 관련 질문 3가지 (이전거랑 달라요) | 한국녀 | 2025-02-11 |