Quiz w C#- winform

0

Hej,
Tworzę program na zaliczenie.
Zaplanowałam, że będzie wczytywać z pliku obrazek i zadawać użytkownikowi pytania. Na podstawie odpowiedzi użytkownika komputer powie jak nazywa się dana postać. (Pytania będą o kolor włosów, znaki szczególne itd).
Wczytywanie obrazka mi działa, zaimplementowałam klasę przechowującą obrazki wraz z ich cechami czyli np. jeśli człowiek jest facetem to facet=true :)
Mam problem z wczytywaniem pytań, żeby się nie bawić po każdym kliknięciu następne pytanie zmienia mi textboxa o określone pytanie.. Odpowiedzi na pytania mają być TAK lub NIE. Po kliknięciu w TAK/NIE automatycznie obydwa przyciski znikają i pojawiają się wraz z kolejnym pytaniem.
Bez problemu pokazuję mi 3 pierwsze pytania, zaś kolejnych nie może a robię analogicznie jak w przypadku tych działających.
kawałek kodu:

 private void button1_Click(object sender, EventArgs e)
        {
            yes +=1;
         
        

            NIE.Visible = false;
            tak.Visible = false;
            if (Pytanie.Text == "Czy postać jest mężczyzną?")
            {
                pytanie1.Visible = true;
            }
            
            if (Pytanie.Text== "Czy postać ma ciemne włosy?")
            {
                pytanie2.Visible = true;
               
            }
          
            if (Pytanie.Text == "Czy postać nosi okulary?")
            {
                 pytanie3.Visible = true;
               

            }
}
 

a tutaj jak tworze pytania:

  private void pytanie1_Click(object sender, EventArgs e)
        {
                Pytanie.Text = "Czy postać ma ciemne włosy?";
                pytanie1.Visible = false;
                tak.Visible = true;
                NIE.Visible = true;
      
       
        }
 private void pytanie2_Click(object sender, EventArgs e)
        {
         Pytanie.Text = "Czy nosi okulary?";
            pytanie2.Visible = false;
            tak.Visible = true;
            NIE.Visible = true; 
        }
   private void pytanie3_Click(object sender, EventArgs e)
        {
            Pytanie.Text = "Czy postać nosi kapelusz?";
            pytanie3.Visible = false;
            tak.Visible = true;
            NIE.Visible = true;
        }

Po kliknięciu w odpowiedź Czy nosi Okulary - TAK nie pojawia mi się przycisk umożliwiający dodanie kolejnego pytania.
Generalnie pierwsze pytanie nazwijmy się pytanie0 - jest automatycznie generowanie przy uruchomieniu rozgrywki.

Z góry dziękuję za pomoc ;)

0

W warunku

        if (Pytanie.Text == "Czy postać nosi okulary?")
        {
             pytanie3.Visible = true;

        }

nie powinno być "Czy nosi okulary?"

0

Dlaczego każde pytanie ma osobną widoczność? to taki karkołomny pomysł jak pytań będzie więcej. Nie myślałaś żeby treści pytań przechowywać w jakieś klasie, a potem je tylko podpinać do widoku.

0
Smutny Krawiec napisał(a):

W warunku

        if (Pytanie.Text == "Czy postać nosi okulary?")
        {
             pytanie3.Visible = true;

        }

nie powinno być "Czy nosi okulary?"

Jak zwykle jestem blondynką :D Czasami stanę z takim problemem a rozwiązanie jest najbardziej oczywiste ;)
Dzięki ;)

0
topik92 napisał(a):

Dlaczego każde pytanie ma osobną widoczność? to taki karkołomny pomysł jak pytań będzie więcej. Nie myślałaś żeby treści pytań przechowywać w jakieś klasie, a potem je tylko podpinać do widoku.

na razie zrobiłam tak łopatologicznie bo chcę na razie sprawdzić czy mi jakkolwiek działa.
Bohaterów mam w osobnej klasie i dodaję ich do listy :) Podobnie zrobię prawdopodobnie z pytaniami :)

0

Po prostu nie kumam idei osobnych kontrolek do każdego pytania. Najprościej jest wyświetlać aktualne pytanie, mieć tylko 2 przyciski, jeden napis i tylko zmieniać Text, a jeśli chcesz mieć widoczne wszystkie pytania, i tylko jedno do odpowiedzi to robisz tak samo a liste trzymasz np. w flowLayoutPanelu.

0

a czy w Winforms nie ma czegoś takiego jak reapeter? i do niego podpiąć liste a w idcommanda=idpytania_odpowiedz ?

1 użytkowników online, w tym zalogowanych: 0, gości: 1