Skip to content
neiblerPublic

About

C언어 기반으로 ncurses 라이브러리를 활용해서 터미널 화면에 직접 테트리스 게임 생성

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Terminal Tetris (C / ncurses)

C 언어와 ncurses 라이브러리로 만든 터미널 기반 테트리스 게임입니다.
기본적인 테트리스 규칙에 더해 점수 랭킹 저장(rank.txt), 블록 그림자 표시, 추천 위치(R) 기능까지 포함되어 있습니다.


빌드 & 실행

이 프로젝트는 ncurses 라이브러리를 활용할 수 있는 환경이라면 어디서든 실행 가능합니다.
즉, Linux, macOS, Windows(MSYS2/WSL 등)처럼 ncurses를 설치할 수 있는 환경이면 빌드와 실행이 가능합니다.


기능 개요

  • 플레이: 블록 회전, 이동, 낙하, 줄 삭제 및 점수 계산
  • 그림자 표시: 현재 블록이 최종 착지할 위치를 / 로 미리 표시
  • 추천 기능: 현재 + 다음 블록 2개를 고려해 최적 배치를 계산하고 R로 표시
  • 랭킹 관리: 게임 종료 후 이름+점수를 rank.txt에 저장. 메뉴에서 랭킹 조회/검색/삭제 가능
  • 터미널 UI: 게임판, 다음 블록, 점수 박스를 화면에 출력

폴더 구조

C:\tetris
├─ Makefile       # 빌드/실행/정리 규칙
├─ README.md      # 프로젝트 설명 문서 (이 파일)
├─ .gitignore     # 빌드 산출물 및 실행 중 생성 파일 제외
├─ tetris.c       # 게임 메인 로직
├─ tetris.h       # 상수/구조체/함수 선언, 블록 정의
└─ rank.txt       # 실행 시 생성/갱신되는 점수 랭킹 파일 (버전관리 제외)

Makefile 실행 방식

  • make → 소스를 빌드하여 실행파일 tetris 생성 이후 ./tetris 통해서 실행
  • make run → 빌드 후 곧바로 게임 실행 (./tetris 포함)
  • make clean → tetris, tetris.o 등 빌드 산출물 삭제

메뉴

  • 1 : Play
  • 2 : Rank (순위 구간 통해서 조회 / 이름 검색 / 특정 순위 삭제)
  • 3 : Recommended Play (자동 플레이용)
  • 4 : Exit

Play 시 게임 조작키

  • ↑ : 블록 회전
  • ↓ : 한 칸 하강
  • ← / → : 좌우 이동
  • Space : 빠른 낙하
  • Q : 종료

점수 산정 방식

코드를 기반으로 점수는 아래 방식으로 계산됩니다:

  1. 블록이 바닥 또는 다른 블록에 닿았을 때

    • AddBlockToField()에서 터치한 칸 수 × 10점을 부여
    • 예: 블록이 바닥이나 기존 블록과 2칸이 접촉 → 2 × 10 = 20점
  2. 줄 삭제 시

    • DeleteLine()에서 삭제한 줄 수² × 100점을 부여
    • 예: 1줄 삭제 → 1² × 100 = 100점
    • 예: 2줄 삭제 → 2² × 100 = 400점
    • 예: 3줄 삭제 → 3² × 100 = 900점

즉, 블록 고정 시 터치 점수 + 줄 삭제 점수가 누적되어 총 점수가 됩니다.


랭킹 저장 (rank.txt)

  • 위치: 실행 디렉토리에 자동 생성 (rank.txt)
  • 생성 시점: 게임 종료 후 이름을 입력하면 점수와 함께 저장
  • 파일 형식:
    • 1행: 랭킹 개수(정수)
    • 2행 이후: 이름 점수 (점수 내림차순으로 정렬됨)
  • 메뉴 기능:
    1. 특정 구간(X~Y) 랭킹 출력
    2. 이름으로 검색하여 해당 점수 조회
    3. 특정 순위를 삭제하면 즉시 파일에 반영

About

C언어 기반으로 ncurses 라이브러리를 활용해서 터미널 화면에 직접 테트리스 게임 생성

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages