示例#1
0
        public frmLogotron()
        {
            InitializeComponent();
            if (bDebug)
            {
                this.StartPosition = FormStartPosition.CenterScreen;
            }

            m_msgDelegue = new clsMsgDelegue();
            EventHandler <clsMsgEventArgs> obj = this.MsgBox;

            m_msgDelegue.EvAfficherMessage += obj;

            // S'il y a besoin de rafraichir (pas besoin pour un MsgBox
            //  mais util pour une barre de msg par exemple)
            //EventHandler<clsDoEventsEventArgs> obj2 = this.DoEvents;
            //m_msgDelegue.EvDoEvents += obj2;
        }
示例#2
0
        public static bool bTirage(bool bComplet, string sNbPrefixesSuccessifs,
                                   List <string> lstNiv, List <string> lstFreq,
                                   ref string sMot, ref string sExplication,
                                   ref string sDetail, ref List <string> lstEtymFin,
                                   bool bGrecoLatin, bool bNeoRigolo, clsMsgDelegue msgDelegue)
        {
            List <string> lstEtym            = new List <string>();
            int           iNbTiragesPrefixes = 0;

            if (sNbPrefixesSuccessifs == clsConst.sHasard)
            {
                iNbTiragesPrefixes = clsUtil.iRandomiser(1, 5);
                float rProba = 1f;
                switch (iNbTiragesPrefixes)
                {
                case 1:
                    rProba = 1f;     // Toujours accepté
                    break;

                case 2:
                    rProba = 1 / 2f;   // Une fois sur 2
                    //rProba = 0.1f; // Une fois sur 10
                    break;

                case 3:
                    rProba = 1 / 4f;   // Une fois sur 4
                    //rProba = 1/3f; // Une fois sur 3
                    //rProba = 0.05f;
                    break;

                case 4:
                    rProba = 1 / 8f;   // Une fois sur 8
                    //rProba = 1/4f; // Une fois sur 4
                    //rProba = 0.03f;
                    break;

                case 5:
                    rProba = 1 / 16f;   // Une fois sur 16
                    //rProba = 1/5f; // Une fois sur 5
                    //rProba = 0.01f;
                    break;
                }
                if (rProba < 1f)
                {
                    float rTirage = clsUtil.rRandomiser();
                    if (rTirage > rProba)
                    {
                        iNbTiragesPrefixes = 1;
                    }
                }
            }
            else
            {
                iNbTiragesPrefixes = int.Parse(sNbPrefixesSuccessifs);
            }

            string        sPrefixesMaj       = "";
            string        sSensPrefixesMaj   = "";
            string        sDetailPrefixesMaj = "";
            clsInitTirage itPref             = new clsInitTirage();

            clsGestBase.m_prefixes.MsgDelegue = msgDelegue;
            clsGestBase.m_suffixes.MsgDelegue = msgDelegue;
            for (int i = 0; i <= iNbTiragesPrefixes - 1; i++)
            {
                //if (LogotronLib.clsConst.bDebug)
                //    Console.WriteLine("Tirage préfixe n°" + (i + 1));
                int iNumPrefixe = clsGestBase.m_prefixes.iTirageSegment(bComplet,
                                                                        lstNiv, lstFreq, itPref, bGrecoLatin, bNeoRigolo);
                clsSegmentBase prefixe = null;
                if (!clsGestBase.m_prefixes.bLireSegment(iNumPrefixe, ref prefixe))
                {
                    return(false);
                }
                string sNiveauP         = prefixe.sNiveau;
                string sPrefixe         = prefixe.sSegment;
                string sPrefixeMaj      = sPrefixe.ToUpper();
                string sSensPrefixeMaj2 = prefixe.sSens.ToUpper();
                sSensPrefixeMaj2   = clsBase.sCompleterPrefixe(sSensPrefixeMaj2);
                sPrefixesMaj      += sPrefixeMaj;
                sSensPrefixesMaj   = sSensPrefixesMaj + " " + sSensPrefixeMaj2;
                sDetailPrefixesMaj = sDetailPrefixesMaj + sPrefixeMaj + "(" + sNiveauP + ") - ";
                string sEtymPrefixe = prefixe.sEtym;
                if (sEtymPrefixe.Length > 0)
                {
                    lstEtym.Add(sPrefixe + "- : " + sEtymPrefixe);
                }
            }
            //if (LogotronLib.clsConst.bDebug) Console.WriteLine("Tirage suffixe");
            int iNumSuffixe = clsGestBase.m_suffixes.iTirageSegment(bComplet,
                                                                    lstNiv, lstFreq, new clsInitTirage(), bGrecoLatin, bNeoRigolo);
            clsSegmentBase suffixe = null;

            if (!clsGestBase.m_suffixes.bLireSegment(iNumSuffixe, ref suffixe))
            {
                return(false);
            }
            string sNiveauS          = suffixe.sNiveau;
            string sSuffixe          = suffixe.sSegment;
            string sSuffixeMaj       = sSuffixe.ToUpper();
            string sDetailSuffixeMaj = sSuffixeMaj + "(" + sNiveauS + ")";
            string sSensSuffixeMaj   = suffixe.sSens.ToUpper();

            sMot         = sPrefixesMaj + sSuffixeMaj;
            sExplication = sSensSuffixeMaj + sSensPrefixesMaj;
            sDetail      = sDetailPrefixesMaj + sDetailSuffixeMaj;
            string sEtymSuffixe = suffixe.sEtym;

            if (sEtymSuffixe.Length > 0)
            {
                lstEtym.Add("-" + sSuffixe + " : " + sEtymSuffixe);
            }
            lstEtymFin = lstEtym;

            //msgDelegue.AfficherMsg("Test MsgBox");

            return(true);
        }