Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

고딩개발자

c언어 게임 프로젝트 본문

c언어

c언어 게임 프로젝트

행운의다섯 2017. 5. 27. 18:21

프로젝트 이름 : c언어로 게임 만들기



1. 프로젝트 동기


   c언어로 알고리즘 문제만 푸는 것이 아니라 실제로 c언어를 가지고 무엇을 할 수 있을까 생각하다가 이 프로젝트를 진행하게 되었다.



2. 예상 프로젝트 내용


  -게임 이름 : 무한의 땅굴

  

   -이 게임을 만들게 된 동기 : 복잡하게 생각하여 플레이 해야 하는 게임보다는 킬링타임에 단순한 키 입력으로 플레이할 수 있는 중독성 있는 게임을 만들고 싶었다. 그러다 문득 "무한의 계단"이라는 게임이 생각나서 이 게임을 만들게 되었다.



  -간단한 게임 설명


     먼저 이 게임은 방향키 →, ↓, ←로 플레이 한다.


     1. 플레이어는 랜덤으로 생성되는 땅굴을 따라서 방향키를 사용해 이동하며 플레이 한다.

     2. 중간 중간 나타나는 코인을 먹으면 코인 점수가 올라가고 나중에 상점에서 아이템이나 캐릭터를 살 수 있다.

     3. 플레이어가 생성된 땅굴이 아닌 곳으로 이동을 하거나 일정 시간 이상 똑같은 곳에 머무르면 게임을 종료 시킨다.



3. 프로젝트 진행 & 기간

    

   5월 3일~4일 : 게임의 자세한 기획

   5월 7일 : 게임 만들기 시작

   5월 9일~10일 : 메인화면과 게임플레이 화면 디자인과 구현

   5월 11일 : 게임 종료화면과 튜토리얼화면 추가

   5월 13일: 플레이어 움직이는 것과 랜덤으로 생성되는 땅굴 알고리즘 구현

   5월 14일~16일 : 전체적인 게임 만들기

   5월 18일~19일 : 부족한 부분 수정 (디자인이나 게임종료 시간 조절, 상점 등등) 

   5월 20일 : 게임 완성



4. 실제 프로젝트 내용


    메인화면 : Sleep함수와 gotoxy함수, SetColor함수를 이용하여 화면을 디자인 함.

    튜토리얼 : gotoxy로 전체적인 디자인을 한 후에 설명을 쓰고 Sleep함수를 이용하여 게임을 플레이 하는 법을 설명함.

    게임화면 : gotoxy로 공간을 분할 한 후에 오른쪽에는 점수와, 코인갯수를 나타내 주고, 왼쪽에는 아래, 오른쪽, 왼쪽 중에 땅굴이 하나씩 생성되면서 플레이어가 게임을 진행 할 수 있다.

    스토어 : gotoxy와 SetColor로 디자인을 한 후 키 입력을 받아 코인을 이용하여 캐릭터를 살 수 있다.

    게임 종료 화면 : 잘못된 땅굴으로 가거나 일정시간 이상 한 곳에 머무르면 게임종료 화면이 뜨고 내가 기록한 점수와 최고점수가 뜨고, 만일 최고 기록을 갰다면 "record breaking!!"이라는 문구가 뜬다.


    게임 플레이 방법과 목적 : 


       이 게임의 목적은 가장 많은 땅굴을 밟고 내려가는 것이다. 

       먼저 게임은 방향키  →, ↓, ←로 플레이 하며 생성된 땅굴을 따라서 움직인다. 


       -srand() : 땅굴과 코인을 랜덤으로 생성한다. 생성된 땅굴을 맞게 밟고 내려가면 따로 선언해 놓은 변수 score를 ++시키면서 현재 점수를 올려준다. 또, 랜덤으로 생성된 코인의 좌표와 플레이어의 좌표가 일치하면 코인 점수를 올려준다. (처음에 땅굴과 코인이 생성되어 출력되고 나면 다시 랜덤함수가 돌아가서 좌표가 바뀌므로 아웃판정과 점수올리기를 위해서는 전에 생성된 땅굴과 코인의 좌표를 다른 변수에 저장해 두고, 그 변수로 판단해야 한다.)


       -아웃판정 : 아웃판정은 두가지로 나뉜다. 첫번째는 생성된 땅굴로 가지 않았을 떄이다. 이때, y좌표는 계속 아래로 내려가는 것이기 때문에 판정할 필요가 없고 x좌표로 판정하면 되는데, 플레이어의 x좌표와 생성된 땅굴의 x좌표가 다를때 플레이어는 아웃된다. 두번째는 타임아웃이다. 땅굴이 생성되자 마자 타이머를 킨 후 시작한 시각을 기록하고, 플레이어가 키를 입력하면 바로 입력받은 시각을 기록한다.  그 다음 처음에 기록한 땅굴이 생성된 시각에서 키를 입력받은 시각을 뺐을때 그 값이 700이상이면 아웃처리가 된다.(Sleep함수도 마찬가지로 1초를 1000으로 나타내므로 0.7초 안에 키를 입력하지 않으면 아웃되는 것 이다.)


      ※화면 아래까지 땅굴이 생성되서 더이상 땅굴이 생성될 곳이 없으면 모두 지워지고 다시 위에서부터 땅굴이 생성된다.



5. 아쉬운점

     전반적으로 디자인을 잘 하지 못한것 같아서 아쉬웠고, 아래까지 땅굴이 다 생성되고 다시 위에서 부터 시작될때 플레이어가 떠있는 상태로 시작하는 점이 아쉬웠다. 또, 스토어에서 키 입력을 받아서 캐릭터를 사는 것을 제대로 구현하지 못한점도 아쉬웠다.



6. 소감

       이번 프로젝트를 통해서 gotoxy, Sleep, rand 등등 다양한 함수들에 대해 알게 되었고, 그동안 배웠던 c언어 문법들을 직접 활용해 볼 수 있어서 유익한 시간이였다. 다음에 또 c언어로 게임을 만들게 된다면 더 복잡한 알고리즘과 다양한 문법을 활용한 게임을 만들고 싶다.

'c언어' 카테고리의 다른 글

정올반 1차시  (0) 2017.07.18
c언어 문자열 비교, 찾기  (0) 2017.07.14
무한의 땅굴(게임프로젝트) 소스코드  (3) 2017.07.02
2차원 배열 달팽이  (2) 2017.03.27
코드업 문제  (2) 2017.03.24