Advertisement
Cassimus

wisielec calosc

Mar 22nd, 2025
237
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 4.40 KB | None | 0 0
  1.  
  2. class HelloWorld
  3. {
  4.  
  5.     static void Main()
  6.     {
  7.         string[] rysunkiWisielca = UtworzRysunkiWisielca();
  8.         string[] tablicaHasel = UtworzListeHasel();
  9.         string wylosowaneHaslo = WylosujHaslo(tablicaHasel);
  10.         (string hasloDoWyswietlenia, int liczbaNieLiter) = ZakryjHaslo(wylosowaneHaslo);
  11.         System.Console.WriteLine(wylosowaneHaslo); // do testów, docelowo usunąć
  12.         System.Console.WriteLine(hasloDoWyswietlenia);
  13.         OdgadujHaslo(wylosowaneHaslo, hasloDoWyswietlenia, liczbaNieLiter, rysunkiWisielca);
  14.     }
  15.  
  16.     private static void OdgadujHaslo(string wylosowaneHaslo, string hasloDoWyswietlenia,
  17.             int liczbaNieLiter, string[] rysunkiWisielca)
  18.     {
  19.         int liczbaPomylek = 0; // index z rysunkiWisielca
  20.         int liczbaOdslonietychLiter = 0;
  21.         string uzyteLitery = "";
  22.  
  23.         while (liczbaOdslonietychLiter < wylosowaneHaslo.Length - liczbaNieLiter)
  24.         {
  25.             Console.Clear();
  26.             System.Console.WriteLine(wylosowaneHaslo); // do testów, docelowo usunąć
  27.             System.Console.WriteLine(rysunkiWisielca[liczbaPomylek]);
  28.             System.Console.WriteLine();
  29.             System.Console.WriteLine(hasloDoWyswietlenia);
  30.             System.Console.WriteLine($"Uzyte litery: {uzyteLitery}");
  31.             System.Console.Write($"Podaj literę: ");
  32.  
  33.             char wpisanaLitera = Console.ReadLine()[0];
  34.  
  35.             if (!uzyteLitery.Contains(wpisanaLitera))
  36.             {
  37.                 uzyteLitery += wpisanaLitera;
  38.  
  39.                 if (wylosowaneHaslo.Contains(wpisanaLitera)
  40.                     && !hasloDoWyswietlenia.Contains(wpisanaLitera))
  41.                 {
  42.                     for (int i = 0; i < wylosowaneHaslo.Length; i++)
  43.                     {
  44.                         if(wylosowaneHaslo[i] == wpisanaLitera)
  45.                         {
  46.                             hasloDoWyswietlenia = hasloDoWyswietlenia.Remove(i,1);
  47.                             hasloDoWyswietlenia =
  48.                                 hasloDoWyswietlenia.Insert(i, wpisanaLitera.ToString());
  49.                             liczbaOdslonietychLiter++;
  50.                         }
  51.                     }
  52.                 }
  53.                 else
  54.                 {
  55.                     liczbaPomylek++;
  56.                     if (liczbaPomylek >= rysunkiWisielca.Length-1)
  57.                     {
  58.                         System.Console.WriteLine(rysunkiWisielca[liczbaPomylek]);
  59.                         System.Console.WriteLine("Przegraleś!!! Spróbuj z innym hasłem");
  60.                         return;
  61.                     }
  62.                 }
  63.             }
  64.         }
  65.         System.Console.WriteLine($"Brawo, wygrałeś!!! Hasłem bylo {wylosowaneHaslo}");
  66.         Console.ReadKey();
  67.     }
  68.  
  69.     private static (string hasloDoWyswietlenia, int liczbaNieLiter) ZakryjHaslo(string wylosowaneHaslo)
  70.     {
  71.         int liczbaNieLiter = 0;
  72.         string hasloDoWyswietlenia = "";
  73.  
  74.         for (int i = 0; i < wylosowaneHaslo.Length; i++)
  75.         {
  76.             char znak = wylosowaneHaslo[i];
  77.             if (char.IsLetter(znak))// sprawdza czy znak jest literą
  78.             {
  79.                 hasloDoWyswietlenia += '_';
  80.             }
  81.             else
  82.             {
  83.                 hasloDoWyswietlenia += znak;
  84.                 liczbaNieLiter++;
  85.             }
  86.         }
  87.  
  88.         return (hasloDoWyswietlenia, liczbaNieLiter);
  89.     }
  90.  
  91.     private static string WylosujHaslo(string[] tablicaHasel)
  92.     {
  93.         Random maszynaLosujaca = new Random();
  94.         return tablicaHasel[maszynaLosujaca.Next(0, tablicaHasel.Length)];
  95.     }
  96.  
  97.     private static string[] UtworzListeHasel()
  98.     {
  99.         return new string[] { "Grand Thief Auto V", "Assasin's Creed Shadow", "Baldur's Gate 3",
  100.             "Guild Wars 2", "Star Wars The Old Republic"};
  101.     }
  102.  
  103.     private static string[] UtworzRysunkiWisielca()
  104.     {
  105.         return new string[]{
  106. @"
  107. +---+
  108.  |   |
  109.      |
  110.      |
  111.      |
  112.      |
  113. =========" ,
  114. @"
  115.  +---+
  116.  |   |
  117.  O   |
  118.      |
  119.      |
  120.      |
  121. =========" ,
  122. @"
  123.  +---+
  124.  |   |
  125.  O   |
  126.  |   |
  127.      |
  128.      |
  129. =========" ,
  130. @"
  131.  +---+
  132.  |   |
  133.  O   |
  134. /|   |
  135.      |
  136.      |
  137. =========" ,
  138. @"
  139.  +---+
  140.  |   |
  141.  O   |
  142. /|\  |
  143.      |
  144.      |
  145. =========" ,
  146. @"
  147.  +---+
  148.  |   |
  149.  O   |
  150. /|\  |
  151. /    |
  152.      |
  153. =========" ,
  154. @"
  155.  +---+
  156.  |   |
  157.  O   |
  158. /|\  |
  159. / \  |
  160.      |
  161. ========="
  162.         };
  163.     }
  164. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement