• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed Gra memory C#

Object Storage Arubacloud
0 głosów
650 wizyt
pytanie zadane 1 września 2018 w C# przez niezalogowany
zamknięte 2 września 2018
Witam, mam do zrobienia projekt gry Memory w języku C# i wszystko zrobiłem oprócz sprawdzania czy są kliknięte 2 odpowiadające sobie przyciski. Nazwy przycisków w projekcie pozostawiłem domyślne np. button1, button2 itd. aż do button22. Po naciśnięciu przycisku jego wartość Enabled zmienia się na false, i tą zmienną chciałem sprawdzić czy są naciśnięte 2 przyciski. Losowanie przycisków w tym programie polega na wylosowaniu liczby i do każdej liczby jest przypisana lokalizacja i one wtedy zamieniają się miejscami. Domyślnie przyciski są ustawione w 11 kolumnach i 2 rzędach, w jednej kolumnie są pasujące do siebie przyciski. I moje pytanie jest takie: Jak zrobić sprawdzanie czy są kliknięte 2 przyciski odpowiadające swoim wartościom. Gdyby jakiś kod był potrzebny to nie ma żadnego problemu.

PS: Gra ma temat związków kwasów w chemii (czyli przycisk 1 z tekstem "Kwas chlorowodorowy" odpowiada przyciskowi drugiemu z tekstem "HCl aq")

Z góry dziękuję
komentarz zamknięcia: Już sobie poradziłem dziękuję za wszystkie odpowiedzi
komentarz 1 września 2018 przez NowyUrzydgownig Mądrala (5,090 p.)
Najprościej stworzyć event. Albo idąc drogą nowicjusza po prostu zmienną globalną w której przechowasz te włączone przyciski. Gdy wyłączasz przycisk dodajesz do niej ten button, a gdy włączasz - usuwasz. Po zwiększaniu od razu sprawdź, czy jest równa 2. Jak jest to wywołaj funkcję sprawdzającą, czy zawartość tych buttonów jest równa.
komentarz 1 września 2018 przez niezalogowany
Dziękuję za odpowiedź niedługo tak zrobię
komentarz 1 września 2018 przez niezalogowany
Mam jeszcze malutkie pytanko: Jak stworzyć taką zmienną globalną i jak ją obsłużyć bo jestem trochę zielony w C# a muszę grę do szkoły zrobić taką.
komentarz 1 września 2018 przez NowyUrzydgownig Mądrala (5,090 p.)
Użyj np. listy.
komentarz 1 września 2018 przez niezalogowany
Chodzi o ListBox ? Czy jest jakaś zmienna listy, wiem że jest string[] i wtedy mam np. nazwazmiennej[5] itp.
komentarz 2 września 2018 przez niezalogowany

@NowyUrzydgownig, dzięki wszystko działa smiley
To jest tylko kawalątek wycięty, a public partial class to po to aby było widać gdzie wrzuciłem zmienną. Może i to w jakiś sposób źle zrobiłem bo wiem że mogłem robić to funkcją switch() ale postanowiłem że zrobię to zwykłą funkcją if() oraz else if()
A zrobiłem to tak:

public partial class Form1 : Form
{
public int[] button = new int[11];
private void button1_Click(object sender, EventArgs e)
        {
            button1.Enabled = false;
            button1.Text = "Kwas chlorowodorowy";
            button[0]++;
            if (button[0] == 2)
            {
                button1.BackColor = Color.LimeGreen;
                button2.BackColor = Color.LimeGreen;
                return;
            }
            else if (button[0] == 1)
            {
                return;
            }
            if (button[1] == 1)
            {
                button2.Enabled = true;
                button3.Enabled = true;
                button4.Enabled = true;
                button2.Text = "";
                button3.Text = "";
                button4.Text = "";
                button[1]--;
            }
            else if (button[2] == 1)
            {
                button2.Enabled = true;
                button5.Enabled = true;
                button6.Enabled = true;
                button2.Text = "";
                button5.Text = "";
                button6.Text = "";
                button[2]--;
            }
            else if (button[3] == 1)
            {
                button2.Enabled = true;
                button7.Enabled = true;
                button8.Enabled = true;
                button2.Text = "";
                button7.Text = "";
                button8.Text = "";
                button[3]--;
            }
            else if (button[4] == 1)
            {
                button2.Enabled = true;
                button9.Enabled = true;
                button10.Enabled = true;
                button2.Text = "";
                button9.Text = "";
                button10.Text = "";
                button[4]--;
            }
            else if (button[5] == 1)
            {
                button2.Enabled = true;
                button11.Enabled = true;
                button12.Enabled = true;
                button2.Text = "";
                button11.Text = "";
                button12.Text = "";
                button[5]--;
            }
            else if (button[6] == 1)
            {
                button2.Enabled = true;
                button13.Enabled = true;
                button14.Enabled = true;
                button2.Text = "";
                button13.Text = "";
                button14.Text = "";
                button[6]--;
            }
            else if (button[7] == 1)
            {
                button2.Enabled = true;
                button15.Enabled = true;
                button16.Enabled = true;
                button2.Text = "";
                button15.Text = "";
                button16.Text = "";
                button[7]--;
            }
            else if (button[8] == 1)
            {
                button2.Enabled = true;
                button17.Enabled = true;
                button18.Enabled = true;
                button2.Text = "";
                button17.Text = "";
                button18.Text = "";
                button[8]--;
            }
            else if (button[9] == 1)
            {
                button2.Enabled = true;
                button19.Enabled = true;
                button20.Enabled = true;
                button2.Text = "";
                button19.Text = "";
                button20.Text = "";
                button[9]--;
            }
            else if (button[10] == 1)
            {
                button2.Enabled = true;
                button21.Enabled = true;
                button22.Enabled = true;
                button2.Text = "";
                button21.Text = "";
                button22.Text = "";
                button[10]--;
            }
        }
}

 

komentarz 2 września 2018 przez NowyUrzydgownig Mądrala (5,090 p.)

Chodziło mi o coś takiego

List<Button> buttons=new List<Button>();

I przypadku jak kliaksz np. button1 to wykonujesz kod:
 

button1.Enabled = false;

buttons.Add(sender as Button);

if(buttons.Count==2)
{
if (buttons[0].content==buttons[1].content)
{ do something; }
else
{
 ...
}
}

Ale skoro twój sposób też działa, to na tym etapie na jakim jesteś, myślę że może być :)

Podobne pytania

0 głosów
0 odpowiedzi 218 wizyt
pytanie zadane 28 października 2019 w JavaScript przez stoklosa Nowicjusz (120 p.)
0 głosów
1 odpowiedź 884 wizyt
pytanie zadane 13 lutego 2019 w JavaScript przez Szymson Nowicjusz (120 p.)
0 głosów
0 odpowiedzi 296 wizyt

92,555 zapytań

141,403 odpowiedzi

319,557 komentarzy

61,940 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...