수다닷컴

  • 해외여행
    • 괌
    • 태국
    • 유럽
    • 일본
    • 필리핀
    • 미국
    • 중국
    • 기타여행
    • 싱가폴
  • 건강
    • 다이어트
    • 당뇨
    • 헬스
    • 건강음식
    • 건강기타
  • 컴퓨터
    • 프로그램 개발일반
    • C언어
    • 비주얼베이직
  • 결혼생활
    • 출산/육아
    • 결혼준비
    • 엄마이야기방
  • 일상생활
    • 면접
    • 취업
    • 진로선택
  • 교육
    • 교육일반
    • 아이교육
    • 토익
    • 해외연수
    • 영어
  • 취미생활
    • 음악
    • 자전거
    • 수영
    • 바이크
    • 축구
  • 기타
    • 강아지
    • 제주도여행
    • 국내여행
    • 기타일상
    • 애플
    • 휴대폰관련
  • 프로그램 개발일반
  • C언어
  • 비주얼베이직

순수 C언어로만 콘솔 게임을 만들려고 하는대요...

사과

2023.04.01


질문 제목 : 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;}

신청하기





COMMENT

댓글을 입력해주세요. 비속어와 욕설은 삼가해주세요.

  • 아서

    그래도 저는 이런 근성을 내기 힘들것 같군여;;;
    역시 플밍은 인내의 완성이군 흐얽기;;

  • 촉촉한 초코칩

    ㄷㄷㄷ. 감사합니다

  • 꿈

    헐 엄청난 노가다가 눈에 선합니다....
    엄청난 도트...!

  • 딥자두

    됩니다 ㅎㅎ

  • 캐릭터

    네 ㅎㅎ 정말감사합니다 지금살펴봣는대 많은도움이 됫어요 ㅎㅎ 정말감사합니다

  • 박애교

    제가 말한 순수한 C언어는 표준함수만을 이용하는 프로그래밍을 뜻합니다. SetConsoleCursorPosition함수나 getch함수는 시스템에 종속적인 함수이기 때문에 순수한 C라고 보기는 힘듭니다.
    원하는 것은 도스창에서 동작하는 게임을 말하는 것 같으니 제가 말한 강좌를 살펴보세요.

  • 쇼코홀릭

    지금 열혈C프로그래밍 (윤성우의) 450 페이지 까지 본 상태 이구요 현재 스네이크 게임을 만드는 중입니다;;

  • 이름이없다고

    순수하게 C언어만으로는 게임을 짜기 매우 어렵습니다.
    사용자의 키보드 입력 타이밍과 실제로 프로그램이 받아들이는 타이밍이 천문학적으로 크기 때문에 텍스트 입력을 통한 명령형 게임이 아닌 이상 불가능하다고 보아야 합니다.
    순수함을 벗어나서 그나마 도스창에서 돌아가는 게임을 만들려면 장편강좌에서 푸시푸시나 인베이더 강좌를 살펴보세요.
    그보다는 우선 C언어 입문서를 아무것이나 한권 사서 차근차근 따라가는 것부터 해야 합니다.

  • 메이커

    테트리스는 아니고 뱀게임요 ㅎㅎ

  • 아리알찬

    테트리스 만드실려구 그러시나 ㅋ

번호 제 목 글쓴이 날짜
2695122 구조체에 대해 물어보고 싶은게 있습니다 ^^^.. (7) 수련 2025-05-17
2695091 txt 파일 입출력 후 2차 배열에 저장하기입니다. (3) 헛장사 2025-05-17
2695063 수도요금 프로그램좀 짜주세요. 시내 2025-05-17
2695033 답변좀요ㅠㅠ (1) 비사벌 2025-05-16
2695010 C++의 STL은 왜 굳이 템플릿화 시켜서 라이브러리를 만드나요? (초보수준의 질문..) (2) 엘보어 2025-05-16
2694958 로직이 변한다는 것에 대해서 궁금합니다. 튼동 2025-05-16
2694929 열혈강의 25-2 두번째 문제 질문 지우개 2025-05-15
2694900 dequeue 에서 리턴값 프린트 방법알려주세요 오늘 12시까지 대화방에 있습니다 도와주세요 미투리 2025-05-15
2694854 절대값을 구할때 (2) 그녀는귀여웠다 2025-05-15
2694827 이제 어떻게 공부해야할지 모르겠네요 새얀 2025-05-14
2694778 순열 계산요. 맛조이 2025-05-14
2694754 ShowWindow 함수를 이용하려 하는데 질문있습니다. (2) 파도 2025-05-14
2694731 리눅스 커널의 시작점 질문 미르 2025-05-13
2694702 이거 뭐가문제인가요 코드수정좀 (3) 맑은 2025-05-13
2694675 C언어 후위표기를 중위표기로 앨런 2025-05-13
2694646 안녕하세요 파일 합치기 함수! (1) 연블루 2025-05-13
2694618 잘몰라서 설명부탁드립니다. scanf 관련 (3) 파라 2025-05-12
2694590 이 코드가 뭐하는 코드일까요? #2 빵순 2025-05-12
2694559 동적할당으로 배열(2차원열)을 만드는데 있어 그걸 함수화시키는데... (1) 늘솔길 2025-05-12
2694532 네트워크에 관하여... (4) 황소자리 2025-05-12
<<  이전  1 2 3 4 5 6 7 8 9 10  다음  >>

수다닷컴 | 여러분과 함께하는 수다토크 커뮤니티 수다닷컴에 오신것을 환영합니다.
사업자등록번호 : 117-07-92748 상호 : 진달래여행사 대표자 : 명현재 서울시 강서구 방화동 890번지 푸르지오 107동 306호
copyright 2011 게시글 삭제 및 기타 문의 : clairacademy@naver.com