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); }