테·트리·가
공식 2009 Tetris 디자인 지침에 따른 Tetris의 Golang 구현입니다.
이 프로젝트는 목표에 따라 세 가지 주요 구성 요소로 구성됩니다.
cmd/tetrigo/
의 TUI(텍스트 사용자 인터페이스)가 당신을 위한 것입니다. 설치 섹션을 참조하세요.pkg/tetris/modes/
에 있는 패키지가 여러분을 위한 것입니다. 자신만의 UI로 이러한 게임 모드를 재사용할 수 있습니다.pkg/tetris/
에 있는 패키지가 여러분을 위한 것입니다. 사용자 정의 규칙 및 요구 사항 세트를 사용하여 자신만의 게임 모드를 만들 수 있습니다.개발 섹션에서 이러한 섹션에 대한 자세한 정보를 확인할 수 있습니다. 제안, 버그 또는 기능 요청이 있는 경우 GitHub 문제를 열어주세요.
Tetrigo는 바이너리를 다운로드하거나 소스에서 빌드하여 설치할 수 있습니다. 선호하는 방법은 아래 지침을 참조하세요.
GitHub의 릴리스 페이지에서 운영 체제에 해당하는 바이너리를 다운로드할 수 있습니다.
다운로드한 후에는 명령줄에서 바이너리를 실행할 수 있습니다.
# Linux or macOS
./tetrigo
# Windows
tetrigo.exe
선택적으로 바이너리를 $PATH
의 디렉터리로 이동하여 어디에서나 실행할 수 있습니다(예).
지원되는 Go 버전이 제대로 설치 및 설정되어 있는지 확인하세요. go.mod 파일에서 Go의 최소 필수 버전을 찾을 수 있습니다.
그런 다음 다음을 실행하여 최신 릴리스를 전역적으로 설치할 수 있습니다.
go install github.com/Broderick-Westrope/tetrigo/cmd/tetrigo@latest
아니면 다른 디렉토리에 설치할 수도 있습니다:
env GOBIN=/bin go install github.com/Broderick-Westrope/tetrigo/cmd/tetrigo@latest
Tetris 게임 방법에 대한 일반적인 정보는 이 초보자 가이드를 참조하세요.
기본 게임 컨트롤은 다음과 같습니다:
A
D
S
W
E
Q
Space
또는 Enter
Escape
Ctrl+C
?
게임 컨트롤은 구성 파일에서 변경할 수 있습니다.
메뉴, 리더보드 등은 화살표 키(이동), Esc(종료), Enter(제출)를 사용하여 탐색할 수 있습니다. 이러한 컨트롤은 구성할 수 없습니다.
하위 명령이나 플래그 없이 Tetrigo를 시작하면 플레이어 이름 및 게임 모드와 같은 간단한 설정을 수동으로 구성할 수 있는 메뉴에서 게임이 시작됩니다.
./tetrigo
메뉴를 건너뛰고 게임 모드(예: 마라톤)에서 직접 게임을 시작할 수도 있습니다.
# Start the game in Marathon mode with a level of 5 and the player name "Brodie"
./tetrigo play marathon --level=5 --name=Brodie
게임 시작에 대한 추가 옵션을 보려면 다음을 실행할 수 있습니다.
./tetrigo --help
TOML 파일을 사용하면 더 복잡한 구성을 수행할 수 있습니다. 구성 파일이 발견되지 않으면 합리적인 기본값이 사용됩니다.
기본적으로 Tetrigo는 장치 XDG config(또는 이에 상응하는) 디렉터리 내에서 ./tetrigo/config.toml
파일을 찾습니다. adrg/xdg는 다양한 운영 체제에 대한 XDG_CONFIG_HOME
값을 정의합니다(예: macOS에서는 ~/Library/Application Support
디렉터리가 존재하며 거기에 저장되며, 그렇지 않으면 ~/Library/Preferences
에 저장됩니다). --config
플래그를 사용하여 다른 파일을 지정할 수 있습니다.
./tetrigo --config=/path/to/config.toml
예제 구성 파일은 example.config.toml
에 제공됩니다.
게임 데이터는 SQLite 데이터베이스에 저장됩니다. 기본적으로 데이터베이스는 장치 XDG 데이터(또는 이에 상응하는) 디렉터리 내의 ./tetrigo/tetrigo.db
에 저장됩니다. adrg/xdg는 다양한 운영 체제에 대한 XDG_DATA_HOME
정의합니다(예: macOS에서 ~/Library/Application Support
디렉토리가 존재하는 경우 해당 디렉토리에 저장되고, 그렇지 않으면 /Library/Application Support
에 저장됩니다). --db
플래그를 사용하여 다른 파일 경로를 지정할 수 있습니다.
./tetrigo --db=/path/to/data.db
이 프로젝트는 세 가지 주요 구성 요소로 구성됩니다.
cmd/tetrigo/
: 즉시 재생할 수 있는 TUI(텍스트 사용자 인터페이스)입니다. 또한 패키지 사용 방법과 Bubble Tea를 사용하여 TUI를 만드는 방법에 대한 데모 역할도 합니다.pkg/tetris/modes/
: 다양한 Tetris 게임 모드에 대한 기능입니다. 이것은 규칙 세트를 알 필요 없이 자신만의 UI로 테트리스 게임을 쉽게 만드는 데 사용할 수 있습니다.pkg/tetris/
: Tetrminimos, Matrix 및 채점 등을 포함한 핵심 Tetris 논리입니다. 이는 자신만의 규칙 세트와 요구 사항으로 게임 모드를 만드는 데 사용할 수 있습니다.Task는 이 프로젝트에서 사용되는 빌드 도구입니다. 작업 구성은 Taskfile.yaml에 있습니다. 작업 CLI가 설치되면 다음을 실행하여 사용 가능한 모든 작업을 볼 수 있습니다.
task -l
run
작업을 사용하여 TUI를 실행할 수 있습니다.
task run
build
작업을 사용하여 프로젝트를 빌드할 수 있습니다.
task build
이렇게 하면 설치 섹션의 지침을 사용하여 실행할 수 있는 바이너리가 bin/
디렉터리에 생성됩니다.
test
작업을 사용하여 테스트를 실행할 수 있습니다.
task test
cover
작업을 사용하여 커버리지 보고서를 생성하고 열 수도 있습니다.
task cover
테스트 우선 순위는 다음과 같습니다.
pkg/tetris/
pkg/tetris/modes/
cmd/tetrigo/