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

c# kółko i krzyżyk, funkcja

0 głosów
183 wizyt
pytanie zadane 25 listopada 2018 w C# i .NET przez Corson Początkujący (260 p.)

Witam

Za zadanie mam zrobic grę kółko i krzyżyk w c# w visualu i napotkałem pewien problem. Od razu ostrzegę że mamy tylko trochę go liznąć bo inna specjalizacja ale do meritum. Chciałbym dla mojego kodu stworzyć funkcję lub tablicę przycisków,  aby nie był on tak powtarzalny jak widać to w kodzie, ale nie znajac dobrze c# i przeszukując internet nie natrafiłem na nic pomocnego. Także liczę na to że znajdzie się ktoś tutaj kto mi pomoże, beż niemiłych docinek. 

namespace Kolko_i_krzyzyk
{
    public partial class Form1 : Form
    {
        int runda;

        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            if (runda == 0)
            {
                button1.Text = "X";
                runda++;
            }
            else if (runda == 1)
            {
                button1.Text = "O";
                runda--;
            }
        }

        private void button2_Click(object sender, EventArgs e)
        {
            if (runda == 0)
            {
                button2.Text = "X";
                runda++;
            }
            else if (runda == 1)
            {
                button2.Text = "O";

            }
        }

        private void button3_Click(object sender, EventArgs e)
        {
            if (runda == 0)
            {
                button3.Text = "X";
                runda++;
            }
            else if (runda == 1)
            {
                button3.Text = "O";

            }
        }

        private void button4_Click(object sender, EventArgs e)
        {
            if (runda == 0)
            {
                button4.Text = "X";
                runda++;
            }
            else if (runda == 1)
            {
                button4.Text = "O";
            }
        }

        private void button5_Click(object sender, EventArgs e)
        {
            if (runda == 0)
            {
                button5.Text = "X";
                runda++;
            }
            else if (runda == 1)
            {
                button5.Text = "O";
            }
        }

        private void button6_Click(object sender, EventArgs e)
        {
            if (runda == 0)
            {
                button6.Text = "X";
                runda++;
            }
            else if (runda == 1)
            {
                button6.Text = "O";
            }
        }

        private void button7_Click(object sender, EventArgs e)
        {
            if (runda == 0)
            {
                button7.Text = "X";
                runda++;
            }
            else if (runda == 1)
            {
                button7.Text = "O";
            }
        }

        private void button8_Click(object sender, EventArgs e)
        {
            if (runda == 0)
            {
                button8.Text = "X";
                runda++;
            }
            else if (runda == 1)
            {
                button8.Text = "O";
            }
        }

        private void button9_Click(object sender, EventArgs e)
        {
            if (runda == 0)
            {
                button9.Text = "X";
                runda++;
            }
            else if (runda == 1)
            {
                button9.Text = "O";
            }
        }
    }
}

 

1 odpowiedź

0 głosów
odpowiedź 26 listopada 2018 przez Siemił Obywatel (1,040 p.)
edycja 26 listopada 2018 przez Siemił

Cześć,

Pod wszystkie przyciski podepnij jeden zdarzenie.

Zmienną runda najlepiej zmień na typ bool.

Samo zdarzenie mniej więcej powinno wyglądać tak:

        private void button_Click(object sender, EventArgs e)
        {
            if (sender is Button)
            {
                (sender as Button).Text = runda ? "X" : "0";
                runda = !runda;
            }
        }

 

komentarz 27 listopada 2018 przez Corson Początkujący (260 p.)
Czyli to mam zastąpić co mam pod buttonami czy jak, bo nie zrozumiałem?
komentarz 27 listopada 2018 przez Siemił Obywatel (1,040 p.)

Przepraszam ale nigdy nie byłem dobry w tłumaczeniu.

Rozumiem że widok mam zbudowany z 9 przycisków na których za pomocą kliknięcia ustawiasz "O" lub "X"?

Jeśli tak to musisz w każdym przycisku ustawić event Click na funkcję button_Click którą podałem wyżej. Robisz to w następujący sposób:

1) Otwierasz Form1.cs [Design],

2) Zaznaczasz przycisk,

3) Klikasz na błyskawicę i "Click" ustawiasz na button_Click,

4) Powtarzasz dla pozostałych przycisków.

W ten sposób zamiast 9 funkcji osobno dla każdego przycisku masz 1 która się wykonuje dla wszystkich przycisków.

Pozdrawiam.

Podobne pytania

0 głosów
2 odpowiedzi 512 wizyt
+3 głosów
3 odpowiedzi 1,954 wizyt
pytanie zadane 28 lutego 2016 w Offtop przez maciek061 Gaduła (4,480 p.)
0 głosów
1 odpowiedź 104 wizyt
pytanie zadane 13 stycznia w C i C++ przez pysiek Początkujący (280 p.)
Porady nie od parady
Zadając pytanie postaraj się o odpowiedni tytuł, kategorię oraz tagi.Tagi

62,430 zapytań

108,570 odpowiedzi

226,655 komentarzy

35,878 pasjonatów

Przeglądających: 191
Pasjonatów: 23 Gości: 168

Motyw:

Akcja Pajacyk

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

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...