Skip to content

Commit

Permalink
Merge develop branch into Master branch - Release v1.4.0 (#9)
Browse files Browse the repository at this point in the history
  • Loading branch information
hozlucas28 authored Oct 20, 2024
2 parents 8cd9ebf + a9b055a commit bf40d61
Show file tree
Hide file tree
Showing 30 changed files with 606 additions and 262 deletions.
22 changes: 7 additions & 15 deletions .github/translations/en/documentation.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Code Documentation
# Code documentation

This document provides a series of templates and examples to document the [structures](#structures), [functions](#functions), and [macros](#macros) of the application.

Expand All @@ -21,10 +21,7 @@ The documentation must follow these rules:
* <DETAILED DESCRIPTION OF THE STRUCTURE (PURPOSE, AND LISTS OF FIELDS)>.
*/
typedef struct {
/**
* @brief <BRIEF DESCRIPTION OF THE MEMBER>.
*/
DataType01 member01;
DataType01 member01; /** <BRIEF DESCRIPTION OF THE MEMBER>. */

// ...
} MyStruct;
Expand All @@ -42,15 +39,8 @@ _For example..._
* representing the x and y coordinates.
*/
typedef struct {
/**
* @brief The x-coordinate of the point.
*/
int x;

/**
* @brief The y-coordinate of the point.
*/
int y;
int x; /** The x-coordinate of the point. */
int y; /** The y-coordinate of the point. */
} Point2D;
```

Expand Down Expand Up @@ -116,7 +106,9 @@ int factorial(int n) {
* @def <MACRO NAME>
* @brief <BRIEF DESCRIPTION OF WHAT THE MACRO DOES>.
*
* @warning <WARNINGS ABOUT THE USE OF THE MACRO (OPTIONAL)>.
* <DETAILED DESCRIPTION OF THE MACRO (OPTIONAL)>.
*
* @warning <WARNINGS ABOUT THE USE OF THE MACRO>.
*/
#define MY_MACRO value
```
Expand Down
4 changes: 2 additions & 2 deletions .github/translations/en/requirements.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,13 @@
> [!CAUTION]
> 2 grades are required in the subject, the practical work (PW) must be submitted and defended individually in parts 1 and 2 before the midterm exam. The defense will be individual, and you must demonstrate mastery of the tools in general and the practical work in particular. For the PW to be archived, it must be submitted by the deadline indicated by the teachers in the following format: `ID_LASTNAME_FIRSTNAME_PW.zip`, e.g., `41127133_PEREZ_MARIA_PIA_PW.zip`. Note that it is a `.zip`, not `.rar` or `.7z`, respect the submission format. The PW as a suffix indicates it is practical work. Attach the statement and remove the `bin` and `obj` folders, as you are sharing programs, and for obvious reasons, the servers will delete compressed files containing binaries or executables.
## Necessary Knowledge
## Necessary knowledge

- **Part 1**: Structured programming and arrays.
- **Part 2**: Dynamic memory.
- **Part 3**: Files.

## General Guidelines and Statement
## General guidelines and statement

Develop the following work in groups of 3 to 5 people. Submission and defense are mandatory. Parts 1 and 2 will be required to take the midterm exam. Keep in mind that the solution must be executable in the laboratories of the [UNLaM](https://www.unlam.edu.ar/), so it must be compatible with the **MinGW 64-bit** compiler. For richer and lag-free visualization, it is recommended to use the [SDL (Simple DirectMedia Layer)](https://www.libsdl.org/) library, the teachers will provide a project with the library included. You will only need to know the functions that allow drawing the elements of the work (_Illustration 1_).

Expand Down
114 changes: 93 additions & 21 deletions .github/translations/es/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,9 +40,16 @@ Este repositorio contiene el trabajo práctico de la materia Tópicos de Program

## Características

- Confirmaciones siguiendo la guía de los [Commits Convencionales](https://www.conventionalcommits.org/es/v1.0.0/)
- Control de entradas utilizando validaciones
- Convenciones y estándares de código
- Despliegue de entregables
- Diseño responsivo
- Documentación del código utilizando la sintaxis de [Doxygen](https://www.doxygen.nl/)
- Implementación de argumentos del programa
- Implementación de la libraría [Simple DirectMedia Layer (SDL)](https://www.libsdl.org/)
- Integración continua con [GitHub Actions](https://docs.github.com/es/actions)
- Lectura e interpretación de archivos
- Memoria dinámica
- Planificación de la arquitectura
- Planificación del flujo de trabajo del equipo (ramas, etiquetas y versionado)
Expand All @@ -57,7 +64,27 @@ Este repositorio contiene el trabajo práctico de la materia Tópicos de Program

4. Selecciona el proyecto [src.cbp](./src/src.cbp) (proyecto principal) y ejecútalo en modo Release para disfrutar del Juego de la Vida de Conway.

## Problemas conocidos
### Argumentos del programa

| Argumento | Descripción | Valor/es aceptado/s | Valor por defecto | Ejemplo |
| :--------------------- | :----------------------------------------------------- | :--------------------------------------------------------------------- | :---------------------------------------------------- | ---------------------------------------------------- |
| `--dashboard-rows` | Cantidad de filas que tendrá el tablero. | `int` (0, valor por defecto] | `(<RESOLUCIÓN DEL ALTO DE LA PANTALLA> / 10) * 0.93` | `--dashboard-rows=28` |
| `--dashboard-cols` | Cantidad de columnas que tendrá el tablero. | `int` (0, valor por defecto] | `(<RESOLUCIÓN DEL ANCHO DE LA PANTALLA> / 10) * 0.99` | `--dashboard-cols=55` |
| `--pattern` | Patrón a dibujar en el centro del tablero. | `"glider"`, `"toad"`, `"press"` ó `"glider cannon"` | `""` | `--pattern="glider cannon"` |
| `--maximum-generation` | Generaciones máximas. | `int` (un valor menor a `0` se interpreta como generaciones infinitas) | `0` | `--maximum-generation=-1` |
| `--delay` | Tiempo de espera para generar la siguiente generación. | `int` [0, 1000] | `0` | `--delay=50` |
| `--platform` | Plataforma en donde se dibujara el tablero. | `"console"` ó `"sdl"` | `""` | `--platform="sdl"` |
| `--initial-state-file` | Ruta a un archivo con el estado inicial del tablero. | Cualquier ruta a un archivo con extensión `.txt` ó `.csv` | `""` | `--initial-state-file="./statics/initial-state.csv"` |

> [¿Cómo defino los argumentos del programa?](https://www.youtube.com/watch?v=9Mi_TTOml94) (opcional).
> [!IMPORTANT]
> Todos los argumentos (exceptuando `--dashboard-rows`, `--dashboard-cols` y `--initial-state-file`) serán solicitados por consola si no son definidos o acepados. Además, el parámetro `--pattern` sera ignorado si se declara un parámetro `--initial-state-file` válido.
> [!WARNING]
> El contenido del archivo apuntado por el parámetro `--initial-state-file` debe seguir un formato especifico como puede observar en el archivo [initial-state.csv](../../../src/statics/initial-state.csv).
### Problemas conocidos

| Problema | Solución |
| :-------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
Expand All @@ -70,6 +97,7 @@ C-Practical-Work-2024/
├── .github/
│ ├── statics/
│ │ ├── demo.mp4
│ │ ├── illustration-01.png
│ │ ├── illustration-02.png
│ │ └── preview.png
Expand All @@ -85,14 +113,8 @@ C-Practical-Work-2024/
│ │ └── requirements.md
│ │
│ └── workflows/
│ ├── format-code-on-pr.yml
│ └── format-code.yml
├── src/
│ ├── main.c
│ ├── src.cbp
│ │
│ └── statics/
│ └── initial-state.txt
|
├── libs/
│ ├── libs.cbp
Expand All @@ -103,6 +125,13 @@ C-Practical-Work-2024/
│ ├── validators.c
│ ├── validators.h
| |
│ ├── game/
| | ├── macros.h
| | ├── main.h
| | ├── methods.c
| | ├── methods.h
| | └── structs.h
| |
│ └── patterns/
│ ├── constructors.c
│ ├── constructors.h
Expand All @@ -111,6 +140,27 @@ C-Practical-Work-2024/
│ ├── methods.c
│ ├── methods.h
│ └── structs.h
├── src/
│ ├── macros.h
│ ├── main.c
│ ├── src.cbp
│ ├── structs.h
│ ├── utilities.c
│ ├── utilities.h
│ ├── validators.c
│ ├── validators.h
│ │
│ ├── sdl/
│ │ ├── main.h
│ │ ├── methods.c
│ │ ├── methods.h
│ │ │
│ │ └── SDL2/
│ │ └── ( ... )
│ │
│ └── statics/
│ └── initial-state.csv
|
├── .clang-format
├── .gitignore
Expand All @@ -124,35 +174,57 @@ C-Practical-Work-2024/
- **[translations](./.github/translations)** - Traducciones de los archivos con extensión `.md` (Markdown).
- **[workflows](./.github/workflows)** - Flujos de trabajo de las GitHub Actions.

- **[src](./src)** - Proyecto principal de la aplicación.

- **[main.c](./src/main.c)** - Archivo de ejecución principal.
- **[src.cbp](./src/src.cbp)** - Archivo de configuración del proyecto.

- **[statics](./src/statics)** - Archivos (imágenes, videos, diagramas, etc.).

- **[initial-state.txt](./src/statics/initial-state.txt)** - Archivo con el estado inicial de la aplicación.

- **[libs](./libs)** - Proyecto con las librerías necesarias para la ejecución del proyecto principal de aplicación.

- **[libs.cbp](./libs/libs.cbp)** - Archivo de configuración del proyecto.
- **[macros.h](./libs/macros.h)** - Archivo con las macros esenciales del proyecto.
- **[main.h](./libs/main.h)** - Archivo que indexa todos los archivos `.h` del proyecto.
- **[utilities.c](./libs/utilities.c)** - Archivo con el desarrollo de los prototipos de función presentes en `utilities.h`.
- **[utilities.h](./libs/utilities.h)** - Archivo con las estructuras y los prototipos de función de uso común.
- **[utilities.h](./libs/utilities.h)** - Archivo con los prototipos de función de uso común.
- **[validators.c](./libs/validators.c)** - Archivo con el desarrollo de los prototipos de función presentes en `validators.h`.
- **[validators.h](./libs/validators.h)** - Archivo con prototipos de funciones relacionadas con procesos de validación.

- **[game](./libs/game)** - Funciones y estructuras para crear e interactuar con el Juego de la Vida de Conway.

- **[macros.h](./libs/game/macros.h)** - Archivo con macros.
- **[main.h](./libs/game/main.h)** - Archivo que indexa todos los archivos `.h` dentro de la carpeta `games`.
- **[methods.c](./libs/game/methods.c)** - Archivo con el desarrollo de los prototipos de función presentes en `methods.h`.
- **[methods.h](./libs/game/methods.h)** - Archivo con los prototipos de función relacionados a los métodos del Juego de la Vida de Conway.
- **[structs.h](./libs/game/methods.h)** - Archivo con estructuras.

- **[patterns](./libs/patterns)** - Funciones y estructuras para crear patrones con células.

- **[constructors.c](./libs/patterns/constructors.c)** - Archivo con el desarrollo de los prototipos de función presentes en `constructors.h`.
- **[constructors.h](./libs/patterns/constructors.h)** - Archivo con las estructuras y los prototipos de función relacionados a la creación de patrones.
- **[macros.h](./libs/macros.h)** - Archivo con macros.
- **[main.h](./libs/main.h)** - Archivo que indexa todos los archivos `.h` dentro de la carpeta `patterns`.
- **[constructors.h](./libs/patterns/constructors.h)** - Archivo con los prototipos de función relacionados a la creación de patrones.
- **[macros.h](./libs/patterns/macros.h)** - Archivo con macros.
- **[main.h](./libs/patterns/main.h)** - Archivo que indexa todos los archivos `.h` dentro de la carpeta `patterns`.
- **[methods.c](./libs/patterns/methods.c)** - Archivo con el desarrollo de los prototipos de función presentes en `methods.h`.
- **[methods.h](./libs/patterns/methods.h)** - Archivo con los prototipos de función relacionados a los métodos de los patrones.
- **[structs.h](./libs/patterns/methods.h)** - Archivo con estructuras.

- **[src](./src)** - Proyecto principal de la aplicación.

- **[macros.h](./src/macros.h)** - Archivo con las principales macros del proyecto.
- **[main.c](./src/main.c)** - Archivo de ejecución principal.
- **[src.cbp](./src/src.cbp)** - Archivo de configuración del proyecto.
- **[structs.h](./src/structs.h)** - Archivo con las principales estructuras para configurar el proyecto.
- **[utilities.c](./src/utilities.c)** - Archivo con el desarrollo de los prototipos de función presentes en `utilities.h`.
- **[utilities.h](./src/utilities.h)** - Archivo con los prototipos de función para configurar el proyecto.
- **[validators.c](./src/validators.c)** - Archivo con el desarrollo de los prototipos de función presentes en `utilities.h`.
- **[validators.h](./src/validators.h)** - Archivo con los prototipos de función para validar los argumentos del proyecto.

- **[sdl](./src/sdl)** - Funciones para interactuar con la librería SDL2.

- **[SDL2](./src/sdl/SDL2)** - Librería SDL2.

- **[main.h](./src/sdl/main.h)** - Archivo que indexa todos los archivos `.h` dentro de la carpeta `sdl`.
- **[methods.c](./src/sdl/methods.c)** - Archivo con el desarrollo de los prototipos de función presentes en `methods.h`.
- **[methods.h](./src/sdl/methods.h)** - Archivo con los prototipos de función que permiten interactuar con la librería SDL2.

- **[statics](./src/statics)** - Archivos (imágenes, videos, diagramas, etc.).

- **[initial-state.csv](./src/statics/initial-state.txt)** - Archivo con el estado inicial de la aplicación.

- **[.clang-format](./.clang-format)** - Archivo de configuración de la herramienta de formateo de código `clang-format`.
- **[.gitignore](./.gitignore)** - Archivo de configuración de Git para evitar el rastreo de archivos no deseados.
- **[LICENSE](./LICENSE)** - Licencia del proyecto.
Expand Down
20 changes: 6 additions & 14 deletions .github/translations/es/documentation.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,10 +21,7 @@ Las documentaciones que se realicen deben seguir las siguientes reglas:
* <DESCRIPCIÓN DETALLADA DE LA ESTRUCTURA (PROPÓSITO Y LISTADO DE CAMPOS)>.
*/
typedef struct {
/**
* @brief <BREVE DESCRIPCIÓN DEL MIEMBRO>.
*/
DataType01 member01;
DataType01 member01; /** <BREVE DESCRIPCIÓN DEL MIEMBRO>. */

// ...
} MyStruct;
Expand All @@ -42,15 +39,8 @@ _Por ejemplo..._
* representing the x and y coordinates.
*/
typedef struct {
/**
* @brief The x-coordinate of the point.
*/
int x;

/**
* @brief The y-coordinate of the point.
*/
int y;
int x; /** The x-coordinate of the point. */
int y; /** The y-coordinate of the point. */
} Point2D;
```

Expand Down Expand Up @@ -116,7 +106,9 @@ int factorial(int n) {
* @def <NOMBRE DE LA MACRO>
* @brief <BREVE DESCRIPCIÓN DE LO QUE HACE LA MACRO>.
*
* @warning <ADVERTENCIAS SOBRE EL USO DE LA MACRO (OPCIONAL)>.
* <DESCRIPCIÓN DETALLADA DE LA MACRO (OPCIONAL)>.
*
* @warning <ADVERTENCIAS SOBRE EL USO DE LA MACRO>.
*/
#define MY_MACRO value
```
Expand Down
Loading

0 comments on commit bf40d61

Please sign in to comment.