Advertisement
NelloRizzo

Guess The Number

Jun 10th, 2020
1,064
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.83 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 Esercitazione___GuessTheNumber
  8. {
  9.     class Program
  10.     {
  11.         /*
  12.          * Problema:
  13.          * Il Computer "pensa" ad un numero compreso tra 1 e 1000,
  14.          * l'utente ha a disposizione 10 tentativi per indovinare
  15.          * il numero sulla base dei suggerimenti che gli verranno
  16.          * forniti ad ogni tentativo effettuato.
  17.          * Esempio:
  18.          * Qual è il numero? 500
  19.          * No, il numero da indovinare è più basso
  20.          * Qual è il numero? 450
  21.          * No, il numero da indovinare è più alto
  22.          * Qual è il numero? 475
  23.          * Bravo, hai indovinato con 3 soli tentativi.
  24.          *
  25.         */
  26.         public static int GetNumber()// <- legge un numero da tastiera e restituisce 0 se non è stato inserito un numero
  27.         {
  28.             if (int.TryParse(Console.ReadLine(), out var number)) return number;
  29.             return 0;
  30.         }
  31.         public static int GetRandom()// <- calcola un numero "casuale" compreso tra 1 e 1000 (inclusi)
  32.         {
  33.             return new Random().Next(1, 1001);
  34.         }
  35.         static void Main(string[] args)
  36.         {
  37.             // il computer pensa ad un numero
  38.             int target = GetRandom(); Console.WriteLine($"Shhhh... il numero da indovinare è {target}, ma non lo dire a nessuno!");
  39.             // l'utente ha a disposizione 10 tentativi
  40.             int attempts = 10;
  41.             // fino a che l'utente indovina oppure ha esaurito i tentativi a sua disposizione
  42.             // mi servo di una variabile per tracciare la condizione che indica se l'utente ha indovinato
  43.             bool won = false;
  44.             while (!won && attempts > 0) // fino a che won è false e i tentativi a disposizione sono > 0
  45.             {
  46.                 Console.Write($"Hai a disposizione {attempts} tentativi. Qual è il numero? ");
  47.                 int number = GetNumber(); // chiedo un nuovo numero
  48.                 attempts--; // decremento il numero di tentativi a disposizione
  49.                 if (number < target) // se numero troppo piccolo
  50.                     Console.WriteLine("Il numero da indovinare è più grande.");
  51.                 else if (number > target) // altrimenti se numero troppo grande
  52.                     Console.WriteLine("Il numero da indovinare è più piccolo.");
  53.                 else // altrimenti l'utente ha vinto!!!
  54.                     won = true; // mi memorizzo la vittoria
  55.             }
  56.             // adesso:
  57.             // se won è true significa che l'utente ha vinto
  58.             if (won)
  59.                 Console.WriteLine("Bravo, hai indovinato!");
  60.             else // altrimenti ha perso
  61.                 Console.WriteLine($"Hai perso, il numero era {target}");
  62.         }
  63.     }
  64. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement