el árbol va
Una implementación de Tetris en Golang, siguiendo la guía oficial de diseño de Tetris de 2009.
Este proyecto consta de tres componentes principales, dependiendo de cuáles sean sus objetivos:
cmd/tetrigo/
es para usted. Consulte la sección de instalación.pkg/tetris/modes/
son para ti. Puedes reutilizar estos modos de juego con tu propia interfaz de usuario.pkg/tetris/
son para ti. Puedes crear tu propio modo de juego con un conjunto personalizado de reglas y requisitos.Puedes encontrar más información sobre estas secciones en la sección de desarrollo. Si tiene alguna sugerencia, error o solicitud de función, abra una incidencia de GitHub.
Tetrigo se puede instalar descargando el binario o compilándolo desde el código fuente. Consulte las instrucciones a continuación para conocer su método preferido.
Puedes descargar el binario correspondiente a tu sistema operativo desde la página de lanzamientos en GitHub.
Una vez descargado puedes ejecutar el binario desde la línea de comando:
# Linux or macOS
./tetrigo
# Windows
tetrigo.exe
Opcionalmente, puedes mover el binario a un directorio en tu $PATH
para ejecutarlo desde cualquier lugar (ejemplo).
Asegúrese de tener una versión compatible de Go instalada y configurada correctamente. Puede encontrar la versión mínima requerida de Go en el archivo go.mod.
Luego puede instalar la última versión globalmente ejecutando:
go install github.com/Broderick-Westrope/tetrigo/cmd/tetrigo@latest
O puede instalar en otro directorio:
env GOBIN=/bin go install github.com/Broderick-Westrope/tetrigo/cmd/tetrigo@latest
Para obtener información general sobre cómo jugar Tetris, consulta esta guía para principiantes.
Los controles predeterminados del juego son los siguientes:
A
D
S
W
E
Q
Space
o Enter
Escape
Ctrl+C
?
Los controles del juego se pueden cambiar en el archivo de configuración.
Se puede navegar por el menú, la tabla de clasificación, etc. usando las teclas de flecha (mover), escapar (salir) e ingresar (enviar). Estos controles no son configurables.
Al iniciar Tetrigo sin subcomandos ni banderas, se iniciará el juego en el menú donde puedes configurar manualmente ajustes simples como el nombre del jugador y el modo de juego:
./tetrigo
También puedes iniciar el juego directamente en un modo de juego (por ejemplo, Maratón), omitiendo el menú:
# Start the game in Marathon mode with a level of 5 and the player name "Brodie"
./tetrigo play marathon --level=5 --name=Brodie
Para ver más opciones para iniciar el juego puedes ejecutar:
./tetrigo --help
Se puede realizar una configuración más compleja utilizando un archivo TOML. Si no se encuentra ningún archivo de configuración, se utilizarán valores predeterminados sensatos.
De forma predeterminada, Tetrigo buscará el archivo ./tetrigo/config.toml
dentro del directorio de configuración XDG (o equivalente) del dispositivo. adrg/xdg define valores XDG_CONFIG_HOME
para varios sistemas operativos (por ejemplo, en macOS existe el directorio ~/Library/Application Support
se almacenará allí; de lo contrario, en ~/Library/Preferences
). Puede especificar un archivo diferente usando el indicador --config
.
./tetrigo --config=/path/to/config.toml
Se proporciona un archivo de configuración de ejemplo en example.config.toml
.
Los datos del juego se almacenan en una base de datos SQLite. De forma predeterminada, la base de datos se almacena en ./tetrigo/tetrigo.db
dentro del directorio de datos XDG (o equivalente) del dispositivo. adrg/xdg define XDG_DATA_HOME
para varios sistemas operativos (por ejemplo, en macOS, si el directorio ~/Library/Application Support
existe, se almacenará allí; de lo contrario, en /Library/Application Support
). Puede especificar una ruta de archivo diferente utilizando el indicador --db
.
./tetrigo --db=/path/to/data.db
Este proyecto consta de tres componentes principales:
cmd/tetrigo/
: Una TUI (Interfaz de usuario de texto) que te permite reproducirlo desde el primer momento. También sirve como demostración sobre cómo usar los paquetes y cómo crear una TUI usando Bubble Tea.pkg/tetris/modes/
: La funcionalidad para diferentes modos de juego de Tetris. Esto se puede utilizar para crear fácilmente un juego de Tetris con tu propia interfaz de usuario pero sin necesidad de conocer el conjunto de reglas.pkg/tetris/
: La lógica central de Tetris, que incluye cosas como Tetrminimos, Matrix y la puntuación. Esto se puede utilizar para crear modos de juego con su propio conjunto de reglas y requisitos.Task es la herramienta de construcción utilizada en este proyecto. La configuración de la tarea se encuentra en Taskfile.yaml. Una vez instalada la CLI de tareas, puede ver todas las tareas disponibles ejecutando:
task -l
Puede ejecutar la TUI utilizando la tarea run
:
task run
Puede construir el proyecto usando la tarea build
:
task build
Esto creará un binario en el directorio bin/
que se puede ejecutar siguiendo las instrucciones de la sección Instalación.
Las pruebas se pueden ejecutar utilizando la tarea test
:
task test
También puede utilizar la tarea cover
para generar y abrir un informe de cobertura:
task cover
Las prioridades ordenadas para las pruebas son:
pkg/tetris/
pkg/tetris/modes/
cmd/tetrigo/