Skip to content

AgustinGomila/Tarati

Repository files navigation

Tarati — Un Juego de Tablero por George Spencer-Brown

Logo

Kotlin Compose Room Android en

Una implementación nativa en Android del juego de estrategia Tarati

Descargar APK · Reglas · Tecnologías

El Juego

Tarati es un juego de mesa estratégico creado por George Spencer-Brown, autor de Laws of Form, que aplica su cálculo de distinciones al juego. La estructura es minimalista pero las consecuencias son profundas: los jugadores mueven piezas, voltean piezas enemigas y promueven las propias a través de un tablero de 23 vértices organizados en zonas concéntricas.

Board

Origen

Diseñado como aplicación práctica del cálculo de distinciones de Brown, Tarati encarna los principios matemáticos y filosóficos de Laws of Form — obra fundamental que explora la lógica a través del concepto de distinción.


Reglas

Objetivo

Capturar la última pieza enemiga (Mit), dejar al oponente sin movimientos legales, o mantener ventaja material cuando la partida termina por otra condición.

Estructura del Tablero

El tablero tiene 23 vértices distribuidos en cuatro zonas:

  • Centro absoluto: 1 vértice (A1)
  • Puente: 6 vértices que conectan el centro con la circunferencia
  • Circunferencia: 12 vértices que forman el anillo exterior
  • Bases domésticas: 4 vértices por jugador (8 en total), un par en cada extremo

Cada jugador comienza con 4 Cobs colocados en su base doméstica.

Piezas

Cob — la pieza básica. Se mueve solo hacia adelante, por aristas en dirección a la base enemiga. No puede retroceder salvo que sea promovida.

Rok — un Cob promovido. Se mueve libremente en cualquier dirección a lo largo de cualquier arista. Un Cob se convierte en Rok al entrar en cualquier vértice de la base doméstica del oponente.

Movimiento

Una pieza se mueve a un vértice adyacente libre. Al llegar, voltea todas las piezas enemigas directamente conectadas a ese vértice, convirtiéndolas al color del jugador activo. Los Roks conservan su estado tras ser volteados.

Piezas Muertas y Promoción Forzada

Un Cob está muerto cuando no tiene movimientos hacia adelante disponibles. Esto ocurre en dos casos:

  • Muerte primaria: el Cob ocupa uno de los dos vértices más interiores de la base enemiga (vértices D3/D4 para blancas, D1/D2 para negras).
  • Muerte por proximidad: todos los vértices adyacentes hacia adelante están ocupados por otros Cobs muertos del mismo color.

Los Roks nunca están muertos.

Cuando un jugador no tiene movimientos normales pero tiene uno o más Cobs muertos que ganarían al menos un movimiento tras su promoción, debe promover uno de esos Cobs en el lugar a Rok. Esta promoción es obligatoria y reemplaza al movimiento normal.

Condiciones de Fin de Partida

La partida termina cuando:

  • Mit: un jugador captura todas las piezas enemigas en un solo movimiento.
  • Stalemit: el jugador activo no tiene movimientos normales ni promociones forzadas disponibles. Gana el oponente.
  • Triple repetición: la misma posición de tablero aparece tres veces con el mismo jugador a mover. Pierde el jugador que provocó la tercera repetición.
  • Regla de 50 movimientos: si transcurren 100 semimovimientos consecutivos sin un movimiento de Cob ni ninguna promoción, el jugador activo puede reclamar tablas. Un jugador con un movimiento ganador disponible no puede reclamar.

Capturas de Pantalla

Interfaz intuitiva construida con Jetpack Compose.


Descargar

Descargar APK

Requisitos:

  • Android 8.0 (API 26) o superior
  • 5–10 MB de espacio libre
  • Pantalla táctil

Instalación:

  1. Descargá el APK desde el enlace anterior.
  2. Permitir instalación desde fuentes desconocidas si se solicita.
  3. Ejecutar el APK y seguir las instrucciones en pantalla.

Tecnologías

Componente Librería / Versión
Lenguaje Kotlin 2.2.21
UI Jetpack Compose 1.11.0, Material Design 3
Inyección de dependencias Koin 4.1.1
Almacenamiento local Room 2.8.3, DataStore 1.1.7
Tests JUnit 4.13.2
Concurrencia Kotlin Coroutines
Arquitectura MVVM
IA Minimax con poda Alpha-Beta, profundización iterativa, tabla de transposición

Estructura del Proyecto

core/
├── data/
│   ├── database/          # Base de datos Room y DAOs
│   └── repositories/      # Implementaciones de repositorios
├── domain/
│   ├── ai/                # Motor, evaluador, estrategia minimax
│   ├── game/              # Tablero, estado de juego, lógica de movimientos
│   ├── repository/        # Interfaces de repositorio
│   └── tutorial/          # Definición de pasos del tutorial
└── utils/
    ├── helpers/            # Auxiliares de fecha/hora
    └── logging/            # Sistema de logging

features/
├── game/                  # Pantalla de juego principal y ViewModel
├── detail/                # Pantalla de detalle de partida
├── library/               # Biblioteca de partidas guardadas
├── settings/              # Pantalla de configuración
└── splash/                # Pantalla de inicio

services/
├── ai/                    # Servicio de IA y ViewModel
├── clipboard/             # Exportación de partidas por portapapeles
├── dialogs/               # Sistema de diálogos
├── localization/          # Gestión de idiomas
└── sound/                 # Sistema de sonido

ui/
├── components/
│   ├── board/             # Renderizado del tablero, highlights, animaciones
│   ├── editor/            # Editor de tablero
│   ├── navigation/        # Grafo de navegación
│   ├── sidebar/           # Panel lateral
│   ├── topbar/            # Barra superior
│   ├── turnIndicator/     # Indicador de turno
│   └── tutorial/          # Componentes de UI del tutorial
└── theme/                 # Sistema de diseño y temas

Más de 220 tests unitarios y previews de Compose.


Créditos

  • Concepto original: George Spencer-Brown — Laws of Form
  • Referencia de implementación React: Adam Blvck
  • Efectos de sonido: MattRuthSound

Para Profundizar

Tarati está fundamentado en Laws of Form de George Spencer-Brown, que introduce un cálculo matemáticamente completo construido íntegramente sobre el concepto de distinción.


"Enseñar el orgullo en el conocimiento es poner una barrera efectiva contra cualquier avance sobre lo que ya se conoce." — George Spencer-Brown


Este proyecto es una implementación educativa y no tiene fines comerciales. Todos los derechos del concepto original pertenecen a George Spencer-Brown.

About

Tarati: A boardgame designed by George Spencer-Brown, the Author of Laws of Form

Topics

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages