Minwoo Dev.

2048 구현 (1) 본문

Project

2048 구현 (1)

itisminu 2023. 6. 3. 15:55
728x90
반응형
SMALL

2021.08.21

도시재생 공모전을 마무리하고 남은 방학 기간동안 할 프로젝트를 찾고 있었다.

2학기에 C언어를 배우는 컴퓨터공학과와 전자공학과가 있어 C언어를 이용한 프로젝트를 해보고자 하였다.

"간단한 게임 만들기" 라는 주제로 의논을 시작하였다.

게임을 아무리 간단히 만든다고 해도 몇백 줄의 코드가 사용될거라 생각해 파이

썬을 기반으로 개발할지 C언어를 기반으로 개발할지 고민하였다.

파이썬은 C언어에 비해 비교적 모듈이 많고 개발 환경이 잘 갖추어져 있기에 끌렸지만 많은 게임 소프트웨어는 파이썬보다 C언어가 많이 사용되어 C언어를 기반으로 개발하기로 하였다.

우리는 vscode를 사용하여 기본 틀을 따오고, 기본 개발환경을 공부하였다.

그리고 각자 C언어의 기본 시스템을 이해하기 위한 Codeup C언어 기초 100제 문제를 풀어보자고 하였다.

기본 틀으로 따온 코드이다.

 

#include<stdio.h>
#include<time.h> // C언어 표준 라이브러리, 시간, 날짜를 얻거나 조작
#include<conio.h> // 콘솔 입출력을 제공하는 헤더파일

void Init()
{

}

void Update()
{

}

void Render() // 실제 게임 화면을 그리는 함수
{
    ScreenClear(); // 다음을 위한 버퍼 지우기
    // 출력 코드
    ScreenFlipping(); // 활성화된 버퍼와 비활성화된 버퍼 바꾸는 함수
}

void Release()
{

}

int main()
{
    int nKey;
    clock_t CurTime, OldTime;
    // clock_t : 틱(시간을 측정하는 기준주기)를 저장하는 형식
    ScreenInit(); // 전위버퍼 - 백버퍼 생성
    Init(); //초기화

    while(1)
    {
        if(_kbhit()) // 키가 눌렸음을 확인하는 함수
        {
            nKey = _getch(); // 읽은 문자를 반환
            if(nKey == 'q')
                break;
            switch(nKey)
            {
            case 'j':
                break;
            case 'l':
                break;
            }
        }
        OldTime = clock(); // clock() : 프로그램이 시작될때 지난 틱 수 반환
        Update(); //데이터 갱신
        Render(); //화면 출력
        while(1)
        {
            CurTime = clock();
            if(CurTime - OldTime > 33)
                break;
        }
    }
    Release(); //해제
    ScreenRelease(); // 스크린 버퍼 해제
    return 0;
}

 

이 코드를 토대로 게임 알고리즘을 따서 넣어야 한다.

우리의 실력으로 열심히해도 그래픽 게임은 불가능하다고 생각하여, 콘솔 창에서 실행되는 2048게임을 만들어보기로 하였다.

우선, 목표는 기존 게임을 모방하여 구현하는 것이다.

2021.08.21 숙제

- Codeup C언어 기초100제 문제 풀어보기

- 2048 게임 기본 패턴 파악하기

728x90
반응형
LIST

'Project' 카테고리의 다른 글

[Web Project] 네이버 웹 클론코딩하기 (1)  (2) 2023.12.29
수학 문제 프로그래밍으로 해결하기  (1) 2023.09.06
(3) 2048 구현 - 3  (0) 2023.07.15
2048 구현 (2)  (0) 2023.06.03