Esempio n. 1
0
        string reactionHistoryFormula(Chemical chemical)
        {
            string s = String.Empty;

            switch (chemical.Series)
            {
            case Series.Alkane:
                if (reactionHistory.Contains("Alkane"))
                {
                    if (chemical.Name == "Methane")
                    {
                        s = "CO2 + 4H2 = CH4";
                    }
                    else
                    {
                        s = chemical.Name.Replace("ane", "ene").ToLower() + " + H2Ni + HEAT" + "\n\r" + "= " + chemical.Name.ToLower();
                    }
                }
                else
                {
                    string element = chemical.GetElement(Element.C).ToString();
                    if (element == "0" || element == "1")
                    {
                        element = String.Empty;
                    }
                    s      += "??? + ??? = " + "C" + element;
                    element = chemical.GetElement(Element.H).ToString();
                    s      += "H" + element;
                }
                break;

            case Series.Alkene:
                int      count = 0;
                string[] str   = { "Alkene_Hydration", "Alkene_Halogenation", "Alkene_Hydrohalogenation", "Alkene_Hydrogenation" };
                foreach (string reaction in str)
                {
                    if (reactionHistory.Contains(reaction))
                    {
                        s += reaction.Replace("Alkene_", "") + ", ";
                        if (count == 2)
                        {
                            s += "\n\r";
                        }
                    }
                    else
                    {
                        s += "???, ";
                    }
                    if (count == 1)
                    {
                        s += "\n\r";
                    }
                    count++;
                }
                break;

            case Series.Alcohol:
                if (reactionHistory.Contains("Alcohol"))
                {
                    s = chemical.Name.Replace("anol", "ene").ToLower() + " + NaOH + HEAT" + "\n\r" + "= " + chemical.Name.ToLower();
                }
                else
                {
                    string element = chemical.GetElement(Element.C).ToString();
                    if (element == "0" || element == "1")
                    {
                        element = String.Empty;
                    }
                    s      += "??? + ??? = " + "C" + element;
                    element = (chemical.GetElement(Element.H) - 1).ToString();
                    s      += "H" + element + "OH";
                }
                break;

            case Series.Halogenoalkane:
                s = String.Empty;
                if (reactionHistory.Contains("Halogenoalkane_Halogenation"))
                {
                    string a = chemical.Name.Replace("ane", "ene").ToLower();
                    s = a + " + HBr + HEAT" + "\n\r" + "= " + chemical.Name.ToLower();
                }
                // CAUTION: halogenoalkane_Hydrohalogenation is missing, but not a priority to sort out here
                else
                {
                    string element = chemical.GetElement(Element.C).ToString();
                    if (element == "0" || element == "1")
                    {
                        element = String.Empty;
                    }
                    s      += "??? + ??? = " + "C" + element;
                    element = chemical.GetElement(Element.H).ToString();
                    s      += "H" + element + "Br";
                }
                break;
            }
            return(s);
        }