private void RozbalOdpoved(Odpoved odpoved) { if (rozbalene == -1) { smazaneTlac = odpovediGrid.Children.ElementAt(odpoved.Index - 1); odpovediGrid.Children.Remove(smazaneTlac); odpovediGrid.Children.Insert(odpoved.Index - 1, vytvorFrameOdpovedi(odpoved)); Grid.SetColumnSpan(odpovediGrid.Children.ElementAt(odpoved.Index - 1), 2); rozbalene = odpoved.Index - 1; } else if (rozbalene == odpoved.Index - 1) //Zabalení odpovědi { odpovediGrid.Children.RemoveAt(odpoved.Index - 1); odpovediGrid.Children.Insert(odpoved.Index - 1, smazaneTlac); rozbalene = -1; } else { odpovediGrid.Children.RemoveAt(rozbalene); odpovediGrid.Children.Insert(rozbalene, smazaneTlac); Label ukol = new Label { Text = odpoved.Ukol }; smazaneTlac = odpovediGrid.Children.ElementAt(odpoved.Index - 1); odpovediGrid.Children.Remove(smazaneTlac); odpovediGrid.Children.Insert(odpoved.Index - 1, vytvorFrameOdpovedi(odpoved)); Grid.SetColumnSpan(odpovediGrid.Children.ElementAt(odpoved.Index - 1), 2); rozbalene = odpoved.Index - 1; } }
public Otazka(string text, string prvni, string druha, string treti, string ctvrta, Odpoved spravna) { Text = text; PrvniOdpoved = prvni; DruhaOdpoved = druha; TretiOdpoved = treti; CtvrtaOdpoved = ctvrta; Spravna = spravna; }
private void Stlacenie(Button button) { if (Koniec == true) { Stop(this, System.EventArgs.Empty); return; } //Overenie int pocitadlo; for (pocitadlo = 0; pocitadlo < Tlacidla.Count; pocitadlo++) { if (Tlacidla[pocitadlo].isOn == true) { break; } } if (pocitadlo == Tlacidla.Count) { return; } if (Dalej == false) { Dalej = true; foreach (Toggle odpoved in Tlacidla) { if (odpoved.isOn == true) { Odpoved = odpoved; } } if (Odpoved == Spravna) { Body++; Otazka.text = "Spravne"; Odpoved.GetComponentInChildren <Text>().color = Color.green; } else { Otazka.text = "Nespravne"; Odpoved.GetComponentInChildren <Text>().color = Color.red; Spravna.GetComponentInChildren <Text>().color = Color.green; } Button.GetComponentInChildren <Text>().text = "Ďalej"; } else { Generovanie(); } }
public static void ZamichatOtazkamOdpovedi(List <Otazka> otazky) { foreach (Otazka otazka in otazky) { Random nahoda = new Random(); for (int i = 0; i < otazka.MozneOdpovedi.Count; i++) { int j = nahoda.Next(otazka.MozneOdpovedi.Count); Odpoved o = otazka.MozneOdpovedi[i]; otazka.MozneOdpovedi[i] = otazka.MozneOdpovedi[j]; otazka.MozneOdpovedi[j] = o; } } }
private void ZaradDoHistorie(Otazka o, string odpoved) { historia.Enqueue("OTAZKA: " + o.ZnenieOtazky); historia.Enqueue("VASA ODPOVED:"); for (int j = 0; j < odpoved.Length; j++) { Odpoved odp = (Odpoved)Enum.Parse(typeof(Odpoved), odpoved[j].ToString().ToUpper()); historia.Enqueue("\t" + o.Moznosti[(int)odp]); } historia.Enqueue("SPRAVNA ODPOVED:"); foreach (Odpoved odp in o.SpravnaOdpoved) { historia.Enqueue("\t" + o.Moznosti[(int)odp]); } }
public static List <Otazka> NacistOtazky(string jmenoSouboruSOtazkami) { Console.WriteLine("Tady máš otázky:"); List <Otazka> vysledek = new List <Otazka>(); Otazka o = new Otazka(); using (System.IO.StreamReader sr = new System.IO.StreamReader(jmenoSouboruSOtazkami)) { string s; Odpoved d; while ((s = sr.ReadLine()) != null) { if (s.EndsWith("?")) { o = new Otazka(); o.ZneniOtazky = s; o.MozneOdpovedi = new List <Odpoved>(); } else if (s.EndsWith("*")) { d = new Odpoved(); d.ZneniOdpovedi = s.Substring(0, s.Length - 1); d.SpravnostOdpovedi = true; o.MozneOdpovedi.Add(d); vysledek.Add(o); } else { d = new Odpoved(); d.ZneniOdpovedi = s; d.SpravnostOdpovedi = false; o.MozneOdpovedi.Add(d); } } } return(vysledek); }
private Frame vytvorFrameOdpovedi(Odpoved o) { Grid grid = new Grid { RowDefinitions = { new RowDefinition { Height = GridLength.Auto }, new RowDefinition { Height = GridLength.Auto }, new RowDefinition { Height = GridLength.Auto }, new RowDefinition { Height = GridLength.Auto } }, ColumnDefinitions = { new ColumnDefinition { Width = new GridLength(0.5, GridUnitType.Star) }, new ColumnDefinition { Width = new GridLength(0.5, GridUnitType.Star) } } }; /* * if (o.JeSpravne) //Stačí 1 sloupec se správnou odpovědí * { * grid.ColumnDefinitions.Add(new ColumnDefinition { Width = new GridLength(1, GridUnitType.Star) }); * } * else//je špatně => musí být 2 sloupce pro vaši a správnou odpověď * { * grid.ColumnDefinitions.Add(new ColumnDefinition { Width = new GridLength(0.5, GridUnitType.Star) }); * grid.ColumnDefinitions.Add(new ColumnDefinition { Width = new GridLength(0.5, GridUnitType.Star) }); * } */ Label ukol = new Label { Text = o.Index.ToString() + ". " + o.Ukol, FontSize = 22, TextColor = Color.Black }; grid.Children.Add(ukol, 0, 2, 0, 1); if (o.JeSpravne != "true") { Label vaseLabel = new Label { Text = "Špatná odpověď : " }; grid.Children.Add(vaseLabel, 0, 1, 1, 2); Label vase = new Label { Text = o.Zvolena, HorizontalOptions = Xamarin.Forms.LayoutOptions.Start, TextColor = Color.Black }; grid.Children.Add(vase, 0, 1, 2, 3); } Label spravnaLabel = new Label { Text = "Správná odpověď : " }; if (o.JeSpravne == "true") { grid.Children.Add(spravnaLabel, 0, 2, 1, 2); } else { grid.Children.Add(spravnaLabel, 1, 2, 1, 2); } Label spravna = new Label { Text = o.Spravna, HorizontalOptions = Xamarin.Forms.LayoutOptions.Start, TextColor = Color.Black }; if (o.JeSpravne == "true") { grid.Children.Add(spravna, 0, 2, 2, 3); } else { grid.Children.Add(spravna, 1, 2, 2, 3); } Label symbol = new Label { Text = o.JeSpravne == "false" ? "✘" : (o.JeSpravne == "true" ? "✔" : "½"), FontSize = 25, TextColor = o.JeSpravne == "false" ? Color.OrangeRed : (o.JeSpravne == "true" ? Color.LimeGreen : Color.Orange), HorizontalOptions = Xamarin.Forms.LayoutOptions.CenterAndExpand }; grid.Children.Add(symbol, 0, 2, 3, 4); Frame frame = new Frame { Content = grid }; var tapRecognizer = new TapGestureRecognizer(); tapRecognizer.Tapped += (s, e) => { RozbalOdpoved(o); }; frame.GestureRecognizers.Add(tapRecognizer); return(frame); }