PERCEPTRONIC
This commit is contained in:
82
JeuHoyEtudiants/JeuHoy_WPF_Natif/Model/GestionPerceptrons.cs
Normal file
82
JeuHoyEtudiants/JeuHoy_WPF_Natif/Model/GestionPerceptrons.cs
Normal file
@@ -0,0 +1,82 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace JeuHoy_WPF_Natif.Model {
|
||||
public class GestionPerceptrons {
|
||||
private Dictionary<string, Perceptron> _lstPerceptrons = new Dictionary<string, Perceptron>();
|
||||
private IGestionFichiers _gestionSortie = new GestionFichiersSorties();
|
||||
private List<Squelette> _lstData = new List<Squelette>();
|
||||
|
||||
/// <summary>
|
||||
/// Constructeur
|
||||
/// </summary>
|
||||
public GestionPerceptrons() {
|
||||
for (char x = '0'; x <= '9'; ++x)
|
||||
_lstPerceptrons.Add(x.ToString(), new Perceptron(x.ToString()));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Charge les échantillons d'apprentissage sauvegardé sur le disque.
|
||||
/// </summary>
|
||||
/// <param name="fichier">Le nom du fichier</param>
|
||||
public void ChargerCoordonnees(string fichier) { _lstData = _gestionSortie.ChargerCoordonnees(fichier); }
|
||||
|
||||
/// <summary>
|
||||
/// Sauvegarde les échantillons d'apprentissage sauvegardé sur le disque.
|
||||
/// </summary>
|
||||
/// <param name="fichier">Le nom du fichier</param>
|
||||
/// <returns>En cas d'erreur retourne le code d'erreur</returns>
|
||||
public int SauvegarderCoordonnees(string fichier) => _gestionSortie.SauvegarderCoordonnees(fichier, _lstData);
|
||||
|
||||
/// <summary>
|
||||
/// Entraine les perceptrons avec un nouveau caractère
|
||||
/// </summary>
|
||||
/// <param name="coordo">Les nouvelles coordonnées</param>
|
||||
/// <param name="reponse">La réponse associé(caractère) aux coordonnées</param>
|
||||
/// <returns>Le résultat de la console</returns>
|
||||
public string Entrainement(Squelette coordo, string reponse) {
|
||||
StringWriter sw = new StringWriter();
|
||||
|
||||
if (reponse != "") {
|
||||
coordo.Reponse = reponse;
|
||||
_lstData.Add(coordo);
|
||||
}
|
||||
|
||||
if (_lstData is null)
|
||||
return "";
|
||||
|
||||
foreach (Perceptron perc in _lstPerceptrons.Values)
|
||||
sw.WriteLine(perc.Entrainement(_lstData));
|
||||
return sw.ToString();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Test le perceptron avec de nouvelles coordonnées.
|
||||
/// </summary>
|
||||
/// <param name="coord">Les nouvelles coordonnées</param>
|
||||
/// <returns>Retourne la liste des valeurs possibles du perceptron</returns>
|
||||
public string Tester(Squelette coord) {
|
||||
string resultat = "";
|
||||
|
||||
foreach (Perceptron perc in _lstPerceptrons.Values)
|
||||
if (perc.TesterNeurone(coord))
|
||||
resultat += perc.Reponse;
|
||||
|
||||
if (resultat == "")
|
||||
resultat = "?";
|
||||
|
||||
return resultat;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Obtient une liste des coordonées.
|
||||
/// </summary>
|
||||
/// <returns>Une liste des coordonées.</returns>
|
||||
public IList<Squelette> ObtenirCoordonnees() => _lstData;
|
||||
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user