#include "declaration.h"

void Automate::lire()
{
    system("cls");
    cout << "***Lecture avec l'automate***"<<endl;
    cout <<endl<< "Rentrer le mot que vous souhaitez lire :"<<endl;
    string mot_a_lire;

    cin>>mot_a_lire;

    int lettre_mot_a_lire=0;
    int rang_a_retenir=0;
    bool poubelle=false;
    do
    {
        cout << "**** Lettre Lue "<< mot_a_lire[lettre_mot_a_lire] <<" ****"<<endl<<endl;
        //cout << tab_etats_composites[rang_a_retenir].tab_etats_composites_destination[mot_a_lire[lettre_mot_a_lire]-96].numero<<endl;
        //cout << tab_etats_composites[rang_a_retenir].tab_etats_composites_destination[mot_a_lire[lettre_mot_a_lire]-97].numero<<endl;
        //cout << tab_etats_composites[rang_a_retenir].tab_etats_composites_destination[mot_a_lire[lettre_mot_a_lire]-98].numero<<endl;
        int etat_recherche=tab_etats_composites[rang_a_retenir].tab_etats_composites_destination[mot_a_lire[lettre_mot_a_lire]-97].numero;
        if(etat_recherche > 0)        //cas dans une lettre de l'alphabet
        {
            int scrutation=0;
            rang_a_retenir=0;
            do
            {
                if(tab_etats_composites[scrutation].numero == etat_recherche)
                {rang_a_retenir=scrutation;}
                else{scrutation++;}
            }while(scrutation != rang_a_retenir && scrutation < tab_etats_composites.size());
            cout << "On lit " << mot_a_lire[lettre_mot_a_lire]<<endl;
            cout << "On va a l'etat "<<tab_etats_composites[rang_a_retenir].numero<<endl;

        }
        else if(etat_recherche == 0)//etat poubelle
        {
            poubelle=true;
            cout << "Votre mot arrive dans la poubelle"<<endl<<"L'automate ne peut pas lire votre mot :o("<<endl;
        }
        system("pause");
        lettre_mot_a_lire++;
    }while(lettre_mot_a_lire<mot_a_lire.size() && poubelle == false);

    if(tab_etats_composites[rang_a_retenir].final==true)
    {
        cout << endl<< "Votre mot est nien lu par l'automate !!!"<<endl;
    }
    else
    {
        cout << "Vous arrivez dans un etat non-final..."<<endl<<"L'automate ne peut pas lire votre mot "<<endl;
    }
    system("pause");

}
