Toroidal implementation of "Conway's Game of Life" in C++.
Dependencies:
- Armadillo 12.8.0 or later
- SFML 2.5.1
Known issues:
- Interface has errors on setups with multiple displays
- Game speed its limited by computation power, noticeable on big boards
Controls:
Esc
: close gameNumeric keys
: select predefined structureLeft mouse button
: change cellRight mouse button
: place selected structureR
: randomize boardP
: pauseSpace bar
: run one stepC
: clear boardS
: save gameT
: rotate selectionM
: mirror selectionUp
/Down
: increase / decrease game speedLeft
/Right
: increase / decrease amount of random cells
Console arguments:
file.txt
(required): defines the save file name. If it exists the game tries to load itsize
(optional): integer that defines board size, 100 by default. This argument is ignored if the game is loaded- Examples:
- ./main save.txt
- ./main save.txt 200
Supported operating systems:
Armadillo and SFML are multi-platform, available for Linux, Windows and MacOs, for linux the given makefile compiles the project with g++
I wanted to include a build system like Cmake, but i will put that on hold in favor of continuing to practice C++
Implementación toroidal del "Juego de la Vida de Conway" en C++
Dependencias:
- Armadillo 12.8.0 o superior
- SFML 2.5.1
Problemas conocidos:
- La interfaz tiene errores al usar multiples pantallas
- La velocidad del juego puede verse limitada por la capacidad de computo, notable en tableros grandes
Controles:
Esc
: cerrar juegoTeclas numericas
: seleccionar una estructura predefinidaBoton izquierdo del mouse
: cambiar celdaBoton derecho del mouse
: colocar estructura seleccionadaR
: generar tablero aleatorioP
: pausarEspacio
: avanzar un pasoC
: limpiar tableroS
: guardar juegoT
: rotar selecciónM
: reflejar selecciónArriba
/Abajo
: aumentar / bajar la velocidad del juegoIzquierda
/Derecha
: aumentar / bajar la cantidad de celdas al generar un tablero aleatorio
Argumentos de consola:
archivo.txt
(obligatorio): define el nombre del archivo txt en el que se guardara partida. Si existe, se carga la partidatamaño
(opcional): un entero que establece que tan grande es el tablero de juego. Por defecto es 100. Este argumento se ignora si se esta cargando una partida existente- Ejemplos:
- ./main guardado.txt
- ./main guardado.txt 200
Sistemas operativos soportados:
Armadillo y SFML son multiplataforma, estan disponibles para Linux, Windows y MacOs, para linux se deja diponible el archivo makefile que compila el proyecto usando g++
Inicialmente tenia la idea de incluir un sistema de build como Cmake, pero es algo que dejare pendiente en pos de seguir practicando C++