Advertisement
ada1711

KzG - C# (v2) - basic

Jan 11th, 2024
37
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.15 KB | None | 0 0
  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.         Console.WriteLine("\nIle razy pojawił się symbol '&'?");
  35.         int odpowiedzUzytkownika = int.Parse(Console.ReadLine());
  36.         if (odpowiedzUzytkownika == licznikAmpersandow)
  37.         {
  38.                 Console.WriteLine("Gratulacje! Twoja odpowiedź jest poprawna.");
  39.         }
  40.         else
  41.         {
  42.                 Console.WriteLine($"Niestety, nie udało się. Prawidłowa odpowiedź to: {licznikAmpersandow}");
  43.         }
  44.  
  45.  
  46.     }
  47.  
  48.     static string GenerujLinie()
  49.     {
  50.         char[] linia = new char[szerokosc];
  51.         for (int i = 0; i < szerokosc; i++)
  52.         {
  53.             if (losowy.Next(100) < szansaNaAmpersand) // Dodano warunek losowy dla '&'
  54.             {
  55.                 linia[i] = '&';
  56.                 licznikAmpersandow++;
  57.             }
  58.             else
  59.             {
  60.                 linia[i] = symbole[losowy.Next(symbole.Length)]; // Ostatni symbol ('&') jest pomijany
  61.             }
  62.         }
  63.         return new string(linia);
  64.     }
  65.  
  66.     static string[] PrzesunLinie(string[] linie)
  67.     {
  68.         string[] noweLinie = new string[wysokosc];
  69.         for (int i = 0; i < wysokosc - 1; i++)
  70.         {
  71.             noweLinie[i] = linie[i + 1];
  72.         }
  73.         noweLinie[wysokosc - 1] = GenerujLinie();
  74.         return noweLinie;
  75.     }
  76. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement