Example #1
0
 //! Metoda uruchamiająca funkcje odpowiedzialne za mruganie oraz odgrywanie dźwięku dla danych punktów w czasie zapisanych w tablicy zapis[,,].
 private void mrug(int s, int l, int i, grafika graf, dzwiek dzwk)
 {
     if (l == zapis[s, z, 0] && zapis[s, z, 1] == 1)
     {
         if (swiatlo)
         {
             graf.krop(mn);
         }
         if (dzwiek)
         {
             dzwk.kropD(mn);
         }
         z++;
     }
     else if (l == zapis[s, z, 0] && zapis[s, z, 1] == 3)
     {
         if (swiatlo)
         {
             graf.kres(mn);
         }
         if (dzwiek)
         {
             dzwk.kresD(mn);
         }
         z++;
     }
     if (z == i)
     {
         z   = 0;
         wyk = true;
     }
 }
Example #2
0
        //! Metoda rysująca pełny ciąg znaków na panelu graficznym g (tylko tryb treningu).
        private void RysT(grafika graf)
        {
            graf.Clear();
            x = 50;
            int dlugosc = 0;

            znaki = "";
            for (int rr = 0; rr < dl; rr++)
            {
                for (int j = 0; j < losowy[rr].znak.Length; j++)
                {
                    znaki = znaki + losowy[rr].znak[j];
                }
                if (nadawanie)
                {
                    graf.RysN1(x, y, losowy[rr].litera, losowy[rr].kolor, tekst);
                    dlugosc = TextRenderer.MeasureText(losowy[rr].litera, new Font("Arial", 48)).Width;
                }
                else if (!nadawanie)
                {
                    graf.RysN1(x, y, znaki, losowy[rr].kolor, tekst);
                    dlugosc = TextRenderer.MeasureText(znaki, new Font("Arial", 48)).Width;
                }
                znaki = "";
                x    += dlugosc + 5;
            }
        }
Example #3
0
 //! Konstruktor klasy Gra.
 public Gra()
 {
     InitializeComponent();
     g    = panel1.CreateGraphics();
     o    = panel2.CreateGraphics();
     h    = panel9.CreateGraphics();
     hh   = panel10.CreateGraphics();
     alfa = new ciag();
     graf = new grafika(g, o, h, hh);
     dzwk = new dzwiek();
 }
Example #4
0
        //! Metoda obsługująca tryb nauki biernej.
        internal async void Nauka1(grafika graf, dzwiek dzwk)
        {
            nauka = true;
            x     = 450;
            while (nauka)
            {
                graf.Clear();
                graf.off();
                for (int i = 0; i < 26; i++)
                {
                    znaki = alfabet[i].litera + "     ";
                    k     = 3;
                    for (int j = 0; j < alfabet[i].znak.Length; j++)
                    {
                        znaki = znaki + alfabet[i].znak[j];
                        uzupZ(0, i, j);
                    }
                    k = k + fa;
                    z = 0;
                    graf.RysN1(x, y, znaki, Color.Black, true);
                    for (int l = 0; l < k; l++)
                    {
                        await Task.Delay(mn * 5);

                        if (reset || menu)
                        {
                            if (menu)
                            {
                                menu  = false;
                                nauka = false;
                                return;
                            }
                            break;
                        }
                        if (l > 2 && (swiatlo || dzwiek))
                        {
                            mrug(0, l, alfabet[i].znak.Length, graf, dzwk);
                        }
                    }
                    if (reset)
                    {
                        reset = false;
                        break;
                    }
                    graf.Clear();
                }
            }
        }
Example #5
0
        //! Metoda generująca losowy ciąg znaków (tylko tryb treningu).
        private void generator(grafika graf)
        {
            znaki = "";
            int liczba;
            int dlugosc = 0;

            x = 50;
            Random rnd = new Random();

            k += 1;
            for (int r = 0; r < dl; r++)
            {
                k        += 2;
                liczba    = rnd.Next(26);
                losowy[r] = new element(alfabet[liczba].litera, alfabet[liczba].znak);
                for (int j = 0; j < losowy[r].znak.Length; j++)
                {
                    znaki = znaki + losowy[r].znak[j];
                    uzupZ(r, liczba, j);
                }
                if (fa == 4)
                {
                    k += 1;
                }
                else
                {
                    k += 4;
                }
                if (nadawanie)
                {
                    graf.RysN1(x, y, losowy[r].litera, Color.Black, tekst);
                    dlugosc = TextRenderer.MeasureText(losowy[r].litera, new Font("Arial", 48)).Width;
                }
                else if (!nadawanie)
                {
                    graf.RysN1(x, y, znaki, Color.Black, tekst);
                    dlugosc = TextRenderer.MeasureText(znaki, new Font("Arial", 48)).Width;
                }
                znaki = "";
                x    += dlugosc + 5;
            }
            k += 2 + fa;
        }
Example #6
0
 //! Metoda sprawdza czy wprowadzony kod z klawiatury jest poprawny (tylko tryb treningu oraz nauki czynnej).
 private void spraw(String zn, grafika graf, Label label1, Label label2)
 {
     if (zn == znaki2)
     {
         label1.ForeColor = Color.Green;
         label1.Text      = "Poprawnie!";
         if (!nadawanie)
         {
             graf.off();
         }
         poprawne = true;
     }
     else
     {
         label1.ForeColor = Color.Red;
         label1.Text      = "Błąd!";
         bledy           += 1;
         label2.Text      = "Błędy: " + bledy;
         znaki2           = "";
         keyPress         = 0;
     }
 }
Example #7
0
        //! Metoda obsługująca tryb treningu.
        internal async void Trening(grafika graf, Label label1, Label label2, TextBox textBox1, dzwiek dzwk, Label label3)
        {
            nauka    = true;
            poprawne = false;
            while (nauka)
            {
                int r = 0;
                z        = 0;
                x        = 10;
                k        = 0;
                poprawne = false;
                graf.Clear();
                generator(graf);
                label1.ForeColor = Color.Green;
                label1.Text      = "Wpisz literę odpowiadającą symbolowi";
                bledy            = 0;
                label2.Text      = "Błędy: " + bledy;
                label3.Text      = "Czas: ";
                textBox1.Clear();
                zegar2.Reset();
                zegar2.Start();
                if (nadawanie)
                {
                    r     = 0;
                    znaki = "";
                    for (int i = 0; i < losowy[r].znak.Length; i++)
                    {
                        znaki = znaki + losowy[r].znak[i];
                    }
                    while (!poprawne)
                    {
                        await Task.Delay(5);

                        if (reset || menu)
                        {
                            if (menu)
                            {
                                menu  = false;
                                nauka = false;
                                return;
                            }
                            reset = false;
                            break;
                        }
                        textBox1.Text = znaki2;
                        if (keyPress == losowy[r].znak.Length)
                        {
                            keyPress = 0;
                            spraw(znaki, graf, label1, label2);
                            if (poprawne)
                            {
                                losowy[r].kolor = Color.Green;
                                r      = r + 1;
                                znaki  = "";
                                znaki2 = "";
                                RysT(graf);
                                if (r < dl)
                                {
                                    poprawne = false;
                                    for (int i = 0; i < losowy[r].znak.Length; i++)
                                    {
                                        znaki = znaki + losowy[r].znak[i];
                                    }
                                }
                            }
                        }
                    }
                }
                else if (!nadawanie)
                {
                    r     = 0;
                    znaki = "";
                    int s = 0;
                    wyk = false;
                    while (!poprawne)
                    {
                        for (int l = 0; l < k && !poprawne; l++)
                        {
                            await Task.Delay(mn * 5);

                            if (reset || menu)
                            {
                                if (menu)
                                {
                                    menu  = false;
                                    nauka = false;
                                    return;
                                }
                                break;
                            }
                            if (l > 2)
                            {
                                mrug(s, l, losowy[s].znak.Length, graf, dzwk);
                                if (wyk)
                                {
                                    wyk = false;
                                    s++;
                                    if (s == dl)
                                    {
                                        s = 0;
                                    }
                                }
                            }
                            if (keyPress > 0)
                            {
                                keyPress      = 0;
                                textBox1.Text = "";
                                spraw(losowy[r].litera, graf, label1, label2);
                                if (poprawne)
                                {
                                    losowy[r].kolor = Color.Green;
                                    r      = r + 1;
                                    znaki2 = "";
                                    RysT(graf);
                                    if (r < dl)
                                    {
                                        poprawne = false;
                                    }
                                }
                            }
                        }
                        if (reset)
                        {
                            reset = false;
                            break;
                        }
                    }
                }
                if (poprawne)
                {
                    zegar2.Stop();
                    graf.Clear();
                    textBox1.Text        = "";
                    graf.drawBrush.Color = Color.Green;
                    label1.Text          = "Dobra robota. Poprawnie zakodowałeś cały ciąg.";
                    label3.Text          = "Czas: " + zegar2.Elapsed;
                    nauka = false;
                    while (!menu)
                    {
                        await Task.Delay(mn * 5);

                        if (reset)
                        {
                            reset = false;
                            nauka = true;
                            break;
                        }
                    }
                }
            }
        }
Example #8
0
        //! Metoda obsługująca tryb nauki czynnej.
        internal async void Nauka2(grafika graf, Label label1, Label label2, TextBox textBox1, dzwiek dzwk)
        {
            nauka       = true;
            bledy       = 0;
            x           = 510;
            label2.Text = "Błędy: " + bledy;
            textBox1.Clear();
            while (nauka)
            {
                graf.Clear();
                label1.ForeColor     = Color.Green;
                label1.Text          = "Wpisz literę odpowiadającą symbolowi";
                graf.drawBrush.Color = Color.Black;
                for (int i = 0; i < 26; i++)
                {
                    znaki2   = "";
                    znaki    = "";
                    keyPress = 0;
                    poprawne = false;
                    graf.Clear();
                    k = 3;
                    z = 0;
                    for (int j = 0; j < alfabet[i].znak.Length; j++)
                    {
                        znaki = znaki + alfabet[i].znak[j];
                        uzupZ(0, i, j);
                    }
                    k = k + fa;
                    if (nadawanie)
                    {
                        graf.RysN1(x, y, alfabet[i].litera, Color.Black, tekst);
                    }
                    else if (!nadawanie)
                    {
                        graf.RysN1(x, y, znaki, Color.Black, tekst);
                    }
                    while (!poprawne)
                    {
                        if (nadawanie)
                        {
                            await Task.Delay(5);

                            if (reset || menu)
                            {
                                if (menu)
                                {
                                    menu  = false;
                                    nauka = false;
                                    return;
                                }
                                break;
                            }
                            textBox1.Text = znaki2;
                            if (keyPress == alfabet[i].znak.Length)
                            {
                                spraw(znaki, graf, label1, label2);
                            }
                        }
                        else if (!nadawanie)
                        {
                            for (int l = 0; l < k && !poprawne; l++)
                            {
                                await Task.Delay(mn * 5);

                                if (reset || menu)
                                {
                                    if (menu)
                                    {
                                        menu  = false;
                                        nauka = false;
                                        return;
                                    }
                                    break;
                                }
                                if (l > 2 && (swiatlo || dzwiek))
                                {
                                    mrug(0, l, alfabet[i].znak.Length, graf, dzwk);
                                }
                                if (keyPress > 0)
                                {
                                    spraw(alfabet[i].litera, graf, label1, label2);
                                    textBox1.Text = "";
                                    if (poprawne)
                                    {
                                        z = 0;
                                    }
                                }
                            }
                        }
                        if (reset)
                        {
                            break;
                        }
                    }
                    if (reset)
                    {
                        reset = false;
                        bledy = 0;
                        break;
                    }
                    graf.drawBrush.Color = Color.Black;
                    if (i == 25)
                    {
                        nauka = false;
                        graf.Clear();
                        textBox1.Text        = "";
                        graf.drawBrush.Color = Color.Green;
                        label1.Text          = "Dobra robota. Poprawnie zakodowałeś cały ciąg.";
                        while (!menu)
                        {
                            await Task.Delay(mn * 5);

                            if (reset)
                            {
                                reset       = false;
                                nauka       = true;
                                bledy       = 0;
                                label2.Text = "Błędy: " + bledy;
                                break;
                            }
                        }
                    }
                }
            }
        }