giganciprogramowania

KzG - C# (v2)

Jan 11th, 2024
46
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  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. }
Add Comment
Please, Sign In to add comment