SHOW:
|
|
- or go back to the newest paste.
1 | using System; | |
2 | using System.Threading; | |
3 | ||
4 | class MatrixConsole | |
5 | { | |
6 | static Random losowy = new Random(); | |
7 | static int szerokosc = 8; | |
8 | static int wysokosc = 7; | |
9 | static char[] symbole = { '1', '0', ' ' }; | |
10 | static int licznikAmpersandow = 0; | |
11 | static int szansaNaAmpersand = 5; // Szansa w procentach na wylosowanie '&' | |
12 | ||
13 | static void Main() | |
14 | { | |
15 | string[] linie = new string[wysokosc]; | |
16 | ||
17 | for (int i = 0; i < wysokosc; i++) | |
18 | { | |
19 | linie[i] = GenerujLinie(); | |
20 | } | |
21 | ||
22 | for (int i = 0; i < 30; i++) // Symulacja trwa przez około 30 cykli | |
23 | { | |
24 | Console.Clear(); | |
25 | foreach (string linia in linie) | |
26 | { | |
27 | Console.WriteLine(linia); | |
28 | } | |
29 | ||
30 | linie = PrzesunLinie(linie); | |
31 | Thread.Sleep(200); // Opóźnienie między aktualizacjami | |
32 | } | |
33 | ||
34 | // Zapytaj użytkownika o liczbę wystąpień '&' | |
35 | Console.WriteLine("\nIle razy pojawił się symbol '&'?"); | |
36 | int odpowiedzUzytkownika; | |
37 | if (int.TryParse(Console.ReadLine(), out odpowiedzUzytkownika)) | |
38 | { | |
39 | if (odpowiedzUzytkownika == licznikAmpersandow) | |
40 | { | |
41 | Console.WriteLine("Gratulacje! Twoja odpowiedź jest poprawna."); | |
42 | } | |
43 | else | |
44 | { | |
45 | Console.WriteLine($"Niestety, nie udało się. Prawidłowa odpowiedź to: {licznikAmpersandow}"); | |
46 | } | |
47 | } | |
48 | else | |
49 | { | |
50 | Console.WriteLine("Wprowadzono nieprawidłowe dane."); | |
51 | } | |
52 | } | |
53 | ||
54 | static string GenerujLinie() | |
55 | { | |
56 | char[] linia = new char[szerokosc]; | |
57 | for (int i = 0; i < szerokosc; i++) | |
58 | { | |
59 | if (losowy.Next(100) < szansaNaAmpersand) // Dodano warunek losowy dla '&' | |
60 | { | |
61 | linia[i] = '&'; | |
62 | licznikAmpersandow++; | |
63 | } | |
64 | else | |
65 | { | |
66 | linia[i] = symbole[losowy.Next(symbole.Length)]; // Ostatni symbol ('&') jest pomijany | |
67 | } | |
68 | } | |
69 | return new string(linia); | |
70 | } | |
71 | ||
72 | static string[] PrzesunLinie(string[] linie) | |
73 | { | |
74 | string[] noweLinie = new string[wysokosc]; | |
75 | for (int i = 0; i < wysokosc - 1; i++) | |
76 | { | |
77 | noweLinie[i] = linie[i + 1]; | |
78 | } | |
79 | noweLinie[wysokosc - 1] = GenerujLinie(); | |
80 | return noweLinie; | |
81 | } | |
82 | } |