Implementación Implementación
A continuación, se implementan varios ejemplos. Por su funcionamiento, estos algoritmos son principalmente gráficos. Aquí presentamos también el código que, si bien es genérico para las clases de base, son aplicaciones WPF para Windows.
Tras la creación de dichos proyectos en Visual Studio, se crean los archivos App.config, App.xaml y App.xaml.cs. Estos no se modifican. Por el contrario, los archivos MainWindows.xaml y MainWindows.xaml.cs sí se modifican, y se proporciona su código.
El modelo MVVM no se ha respetado, voluntariamente, para mantener el código más ligero y simplificar su comprensión.
1. Banco de peces Banco de peces
La primera aplicación es una simulación de un banco de peces, inspirado en los boids de Reynolds, en dos dimensiones.
Vamos a ver un conjunto de peces, representados como trazos, desplazándose por un océano virtual evitando zonas peligrosas en su interior (que pueden ser obstáculos físicos o zonas con depredadores).
El comportamiento del banco se obtendrá, únicamente, por emergencia.
a. Los objetos del mundo y las zonas a evitar
Antes de codificar los propios agentes, vamos a codificar una primera clase que puede ser utilizada a la vez por los objetos y los agentes. Esta, llamada ObjectInWorld, contiene dos atributos PosX y PosY que indican las coordenadas del objeto. Se trata de campos públicos, para optimizar su acceso. En efecto, se realizarán muchos...