• 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
322 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ł Bywalec (2,220 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ł Bywalec (2,220 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 565 wizyt
+3 głosów
3 odpowiedzi 2,154 wizyt
pytanie zadane 28 lutego 2016 w Offtop przez maciek061 Gaduła (4,500 p.)
0 głosów
1 odpowiedź 121 wizyt
pytanie zadane 13 stycznia w C i C++ przez pysiek Początkujący (280 p.)
Porady nie od parady
Możesz ukryć, zamknąć lub zmodyfikować swoje pytanie, za pomocą przycisków znajdujących się pod nim. Nie krępuj się poprawić pochopnie opublikowanego pytania czy zamknąć go po uzyskaniu satysfakcjonującej odpowiedzi. Umożliwi to zachowanie porządku na forum.Przyciski pytania

64,798 zapytań

111,258 odpowiedzi

233,984 komentarzy

46,695 pasjonatów

Przeglądających: 266
Pasjonatów: 14 Gości: 252

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.

...