View difference between Paste ID: SwNhuCgp and mfv6t64q
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
}