เต้·ทรี·ไป
การใช้งาน Golang ของ Tetris ตามแนวทางการออกแบบ Tetris อย่างเป็นทางการปี 2009
โครงการนี้ประกอบด้วยองค์ประกอบหลักสามส่วน ขึ้นอยู่กับเป้าหมายของคุณ:
cmd/tetrigo/
เหมาะสำหรับคุณ ดูส่วนการติดตั้งpkg/tetris/modes/
เหมาะสำหรับคุณ คุณสามารถใช้โหมดเกมเหล่านี้ซ้ำได้ด้วย UI ของคุณเองpkg/tetris/
เหมาะสำหรับคุณ คุณสามารถสร้างโหมดเกมของคุณเองได้ด้วยชุดกฎและข้อกำหนดที่กำหนดเองคุณสามารถค้นหาข้อมูลเพิ่มเติมเกี่ยวกับส่วนเหล่านี้ได้ในส่วนการพัฒนา หากคุณมีข้อเสนอแนะ ข้อบกพร่อง หรือคำขอคุณลักษณะ โปรดเปิดปัญหา GitHub
Tetrigo สามารถติดตั้งได้โดยการดาวน์โหลดไบนารี่หรือโดยการสร้างจากแหล่งที่มา ดูคำแนะนำด้านล่างสำหรับวิธีที่คุณต้องการ
คุณสามารถดาวน์โหลดไบนารีที่สอดคล้องกับระบบปฏิบัติการของคุณได้จากหน้าเผยแพร่บน GitHub
เมื่อดาวน์โหลดแล้ว คุณสามารถเรียกใช้ไบนารีได้จากบรรทัดคำสั่ง:
# Linux or macOS
./tetrigo
# Windows
tetrigo.exe
หรือคุณสามารถย้ายไบนารีไปยังไดเรกทอรีใน $PATH
ของคุณเพื่อเรียกใช้จากทุกที่ (ตัวอย่าง)
ตรวจสอบให้แน่ใจว่าคุณได้ติดตั้งและตั้งค่า Go เวอร์ชันที่รองรับอย่างถูกต้อง คุณสามารถค้นหา Go เวอร์ชันขั้นต่ำที่ต้องการได้ในไฟล์ go.mod
จากนั้นคุณสามารถติดตั้งรุ่นล่าสุดได้ทั่วโลกโดยเรียกใช้:
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
?
ส่วนควบคุมเกมสามารถเปลี่ยนแปลงได้ในไฟล์กำหนดค่า
เมนู ลีดเดอร์บอร์ด ฯลฯ สามารถนำทางได้โดยใช้ปุ่มลูกศร (เคลื่อนที่) เอสเคป (ออก) และเข้า (ส่ง) การควบคุมเหล่านี้ไม่สามารถกำหนดค่าได้
การเริ่ม 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 จะค้นหาไฟล์ ./tetrigo/config.toml
ภายในไดเร็กทอรีการกำหนดค่า XDG ของอุปกรณ์ (หรือเทียบเท่า) adrg/xdg กำหนดค่า XDG_CONFIG_HOME
สำหรับระบบปฏิบัติการต่างๆ (เช่น บน macOS มันคือ ~/Library/Application Support
ไดเร็กทอรีที่มีอยู่ ซึ่งจะถูกเก็บไว้ที่นั่น มิฉะนั้นจะอยู่ใน ~/Library/Preferences
) คุณสามารถระบุไฟล์อื่นได้โดยใช้แฟล็ก --config
./tetrigo --config=/path/to/config.toml
ไฟล์การกำหนดค่าตัวอย่างมีอยู่ใน example.config.toml
ข้อมูลเกมจะถูกเก็บไว้ในฐานข้อมูล SQLite ตามค่าเริ่มต้น ฐานข้อมูลจะถูกจัดเก็บไว้ใน ./tetrigo/tetrigo.db
ภายในไดเร็กทอรีข้อมูล XDG ของอุปกรณ์ (หรือเทียบเท่า) adrg/xdg กำหนด XDG_DATA_HOME
สำหรับระบบปฏิบัติการต่างๆ (เช่น บน macOS หากมีไดเร็กทอรี ~/Library/Application Support
อยู่ ก็จะถูกเก็บไว้ที่นั่น มิฉะนั้นจะอยู่ใน /Library/Application Support
) คุณสามารถระบุพาธของไฟล์อื่นได้โดยใช้แฟล็ก --db
./tetrigo --db=/path/to/data.db
โครงการนี้ประกอบด้วยสามองค์ประกอบหลัก:
cmd/tetrigo/
: TUI (อินเทอร์เฟซผู้ใช้แบบข้อความ) ช่วยให้คุณสามารถเล่นมันนอกกรอบได้ อีกทั้งยังเป็นการสาธิตวิธีใช้แพ็คเกจและวิธีสร้าง TUI โดยใช้ Bubble Teapkg/tetris/modes/
: ฟังก์ชั่นสำหรับโหมดเกม Tetris ต่างๆ สามารถใช้เพื่อสร้างเกม Tetris ด้วย UI ของคุณเองได้อย่างง่ายดาย แต่ไม่จำเป็นต้องรู้กฎเกณฑ์pkg/tetris/
: ตรรกะหลักของ Tetris รวมถึงสิ่งต่างๆ เช่น Tetrminimos, Matrix และการให้คะแนน สามารถใช้เพื่อสร้างโหมดเกมด้วยชุดกฎและข้อกำหนดของคุณเองงานคือเครื่องมือสร้างที่ใช้ในโปรเจ็กต์นี้ การกำหนดค่างานอยู่ใน Taskfile.yaml เมื่อติดตั้ง Task CLI แล้ว คุณจะสามารถดูงานที่มีอยู่ทั้งหมดได้โดยการรัน:
task -l
คุณสามารถรัน TUI โดยใช้งาน run
:
task run
คุณสามารถสร้างโปรเจ็กต์ได้โดยใช้งาน build
ด์:
task build
สิ่งนี้จะสร้างไบนารีในไดเร็กทอรี bin/
ซึ่งสามารถรันได้โดยใช้คำแนะนำในส่วนการติดตั้ง
การทดสอบสามารถรันได้โดยใช้งาน test
:
task test
คุณยังสามารถใช้งาน cover
เพื่อสร้างและเปิดรายงานความครอบคลุมได้:
task cover
ลำดับความสำคัญสำหรับการทดสอบคือ:
pkg/tetris/
pkg/tetris/modes/
cmd/tetrigo/