Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge develop branch into Master branch - Release v1.4.0 #9

Merged
merged 42 commits into from
Oct 20, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
42 commits
Select commit Hold shift + click to select a range
abb78ac
feature: rename `initial-state` file
hozlucas28 Oct 13, 2024
ba06238
feature: add new main argument
hozlucas28 Oct 13, 2024
02a8063
feature: create `validateInitialStateFile` function validator
hozlucas28 Oct 13, 2024
c8751b2
feature: remove unnecessary include
hozlucas28 Oct 13, 2024
65839d5
fix: add missing includes
hozlucas28 Oct 13, 2024
ad1a074
feature: create `drawDashboardFromFile` function
hozlucas28 Oct 13, 2024
2da6b96
feature: add new main argument
hozlucas28 Oct 13, 2024
ebfdd66
feature: improve performance and implement `initialStateFile` main ar…
hozlucas28 Oct 13, 2024
71dae16
fix: remove unnecessary code
hozlucas28 Oct 13, 2024
d31e8ac
todos: add new todo
hozlucas28 Oct 13, 2024
9979bec
ci: format code
github-actions[bot] Oct 13, 2024
ae114e4
Merge branch 'develop' of https://github.com/hozlucas28/C-Practical-W…
hozlucas28 Oct 13, 2024
3502e6e
todos: add new todo
hozlucas28 Oct 13, 2024
320bde2
fix: remove unnecessary macros
hozlucas28 Oct 13, 2024
09b7ed6
fix: restore variable
hozlucas28 Oct 13, 2024
83cf176
ci: format code
github-actions[bot] Oct 13, 2024
4393512
todo: remove todo
hozlucas28 Oct 13, 2024
5e8f96a
Merge branch 'develop' of https://github.com/hozlucas28/C-Practical-W…
hozlucas28 Oct 13, 2024
e598459
feature: implement `MAX` macro
hozlucas28 Oct 14, 2024
6605d83
doc: complete remaining documentation
hozlucas28 Oct 14, 2024
147ceee
fix: rename `drawDashboardFromFile` function
hozlucas28 Oct 14, 2024
1db0071
ci: format code
github-actions[bot] Oct 14, 2024
6a641b3
todos: add new todo
hozlucas28 Oct 16, 2024
3764642
Merge branch 'develop' of https://github.com/hozlucas28/C-Practical-W…
hozlucas28 Oct 16, 2024
b029bff
todos: complete todos
hozlucas28 Oct 18, 2024
37cda36
feature: update variables and parameters data types
hozlucas28 Oct 18, 2024
c9e3c9b
ci: format code
github-actions[bot] Oct 18, 2024
017eeb7
doc: update documentation guidelines
hozlucas28 Oct 18, 2024
fa0e05e
Merge branch 'develop' of https://github.com/hozlucas28/C-Practical-W…
hozlucas28 Oct 18, 2024
b75b060
doc: update `Application Structure` section
hozlucas28 Oct 18, 2024
f296cd1
todos: complete todo
hozlucas28 Oct 18, 2024
f6c488f
doc: update `Features` section
hozlucas28 Oct 18, 2024
5da368f
todos: complete todo
hozlucas28 Oct 18, 2024
1fe86cd
doc: create `Program arguments` section
hozlucas28 Oct 18, 2024
4a5f48e
todos: complete todo
hozlucas28 Oct 18, 2024
b6f1163
fix: remove auto set program arguments
hozlucas28 Oct 18, 2024
76dee53
fix: data types
hozlucas28 Oct 20, 2024
3f540fe
feature: implement `setDashboardFromFile` function
hozlucas28 Oct 20, 2024
d7e08e1
ci: format code
github-actions[bot] Oct 20, 2024
6c7fe06
todos: complete all todos
hozlucas28 Oct 20, 2024
e6a4087
Merge branch 'develop' of https://github.com/hozlucas28/C-Practical-W…
hozlucas28 Oct 20, 2024
a9b055a
doc: add new alert
hozlucas28 Oct 20, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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