//! 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(); } } }
//! 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; } }
//! Inicjalizacja wyświetlanej grafiki. private void inicajacja() { graf.Clear(); graf.kontrolki1(alfa.swiatlo, alfa.dzwiek, alfa.tryb, alfa.fa, alfa.tekst); graf.off(); }
//! 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; } } } } }
//! 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; } } } } } }