Advertisement
Guest User

kodzik

a guest
Aug 18th, 2017
200
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.99 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6.  
  7. namespace zgadywarka
  8. {
  9.     class Program
  10.     {
  11.         static void Main(string[] args)
  12.         {
  13.             //Przekazanie uzytkownikowi co ma zrobic
  14.             Console.WriteLine($"Pomysl sobie liczbe od 1 do 100");
  15.  
  16.             //Ilosc w jakiej program odgadl liczbe
  17.             int guesses = 0;
  18.  
  19.             //maksymalna liczba
  20.             int max = 100;
  21.  
  22.             //Minimalna liczba od ktorej zaczynamy zgadywanie
  23.             int guessMin = 0;
  24.  
  25.             //Maksymalna liczba do ktorej program zgaduje (polowa maxa)
  26.             int guessMax = max / 2;
  27.  
  28.             //dopoki minimalna liczba nie rowna sie maksymalnej
  29.             while (guessMin != max)
  30.             {
  31.                 //Zwiekszamy wartosc ilosci prob
  32.                 guesses++;
  33.  
  34.                 //Program pyta uzytkownika czy jego liczba znajduje sie w przediale
  35.                 Console.WriteLine($"Czy twoja liczba znajduje sie w przedziale od {guessMin} do {guessMax}?");
  36.                 string response = Console.ReadLine();
  37.  
  38.                 if (response?.ToLower().FirstOrDefault() == 't')
  39.                 {
  40.                    //Wiemy ze liczba jest miedzy guessMin a guessMax wiec ustalmy nowe maksimum
  41.  
  42.                     max = guessMax;
  43.  
  44.                     //uzyskanie nowej, maksymalnej liczby do zgadniecia
  45.                     guessMax = guessMax - (guessMax - guessMin) / 2;
  46.                 }
  47.                 //Liczba jest wieksza niz guessMax i mniejsza lub rowna maxowi
  48.                 else
  49.                 {
  50.                     //Ustalmy nowy guessMin
  51.                     guessMin = guessMax + 1;
  52.  
  53.                     //nowa maksymalna liczba do ktorej program zgaduje
  54.                     int difference = max - guessMax;
  55.  
  56.                     //Ustalenie guessMaxa
  57.                     guessMax +=(int)Math.Ceiling(difference / 2f);
  58.  
  59.                 }
  60.                 //kiedy zostana 2 liczby
  61.                 if (guessMin + 1 == max)
  62.                 {
  63.                     //dalej kontrolujemy liczbe zgadniec
  64.                     guesses++;
  65.                     //Pytanie czy to mniejsza liczba
  66.                     Console.WriteLine($"Czy twoja liczba to {guessMin}?");
  67.                     response = Console.ReadLine();
  68.                     //Jezeli uzytkownik powie, ze tak
  69.                     if (response?.ToLower().FirstOrDefault() == 't')
  70.                     {
  71.                         break;
  72.                     }
  73.                     else
  74.                     {
  75.                         //wiemy to poniewaz zostaly dwie liczby i nie jest to liczba najmniejsza
  76.                         guessMin = max;
  77.                         break;
  78.                     }
  79.                 }
  80.             }
  81.             Console.WriteLine($"Twoja liczba to {guessMin}!");
  82.             Console.WriteLine($"Zostala odgadnieta w {guesses} ruchach");
  83.             Console.ReadLine();
  84.         }
  85.     }
  86. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement