Jak zrobić klona sapera w Forms?

Jak zrobić klona sapera w Forms?
KP
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 15
1

To początki w C#. Prośba o pomoc. Chciałem stworzyć klona sapera. Po kliknięciu na PictureBoxa, etykieta wyświetla 0 zamiast 1. Czy ten kod w ogóle ma sens?Z góry dziękuję za wszelką pomoc.
Poniżej kod:

Kopiuj
namespace saper
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        public void Punkty()
        {
            int wynik = 0;
                if (pictureBox1.Image == imageList1.Images[0])
                wynik = wynik + 1;
                label1.Text = wynik.ToString();
        }

        private void pictureBox1_Click(object sender, EventArgs e)
        {
            pictureBox1.Image = imageList1.Images[0];

            Punkty();
        }
    }
}
Veo
  • Rejestracja: dni
  • Ostatnio: dni
1

Hej, używasz jakiegoś IDE?

Na start to formatowanie. Puste linie i te wcięcia w Punkty nie mają sensu. Nie mają one znaczenia w logice kodu, ale ułatwiają jego czytanie.

Nie znam formsów za bardzo. Dlaczego przypisujesz Image z listy, a potem sprawdzasz to w IF?
Jak używasz visual studio lub ridera, to możesz postawić break point i sprawdzić co się dzieje w kodzie. Czy ta metoda Punkty jest w ogóle wołana.
I czy to przypisanie te image w ogóle działa?

KP
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 15
1
Veo napisał(a):

Dlaczego przypisujesz Image z listy, a potem sprawdzasz to w IF?

Jestem zupełnie zielony w programowaniu to dla mnie takie "egzotyczne" hobby
Chciałem aby etykieta wyświetlała punkty czyli np klik na picturebox z przypisanym image z cyfra 1 sprawdzenie i wyswietlenie punktacji. Dzięki za dotychczasową pomoc.

Pozdrawiam

Ps napisałem wersję z buttonami i tam sprawdzam w IF kolor przycisku po kliknięciu. Tzn zmiana koloru przycisku po kliknięciu i wywołanie metody sprawdzającej czy backcolor równa się temu po zmianie Kod jest prawie identyczny i działa tu nie dlatego mój post na forum

Veo
  • Rejestracja: dni
  • Ostatnio: dni
2
Krzysztof Piasecki napisał(a):

Pewnie rozumiem. Tu może być nawet problem z tym, że przypisana została kopia obiektu Image, a później porównujesz referencje i dlatego teraz nie działa.

Osobiście sugerowałbym (z własnego doświadczenia) zacząć naukę kodowania od tworzenia takich rzeczy w konsoli. Zmniejsza to niepotrzebny narzut techniczny części wizualnej, która może wymagać konkretnej kolejności, zadbania o rendering, czy innych niepotrzebnych zawiłości.

Takiego sapera lub statki, czy na początek kółko i krzyżyk możesz bez problemu stworzyć w konsoli obsługując wpisywane koordynaty typu A3, B2 itp. Skupisz się wtedy na tym co jest ważne na początku, czyli obsłudze IF, pętli, zmiennych, wołania metod itp.
Rzucając się od razu na warstwę prezentacji niepotrzebnie komplikujesz sobie życie i szybciej się możesz zniechęcić

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.