Advertisement
Guest User

Petit Chat : Devinette

a guest
Dec 13th, 2019
242
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 9.05 KB | None | 0 0
  1. ##############################################################
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Threading;
  7. namespace S1_Devinette_exo7
  8. {
  9.   class Program
  10.   {
  11.     /// <summary>
  12.     /// Point d'entrée dans le programme "Petit Chat : Devinette :
  13.     /// </summary>
  14.     /// <param name="args"></param>
  15.     static void Main(string[] args)
  16.     {
  17.       PetitChat();
  18.     }
  19.     /// <summary>
  20.     /// Petit Chat qui danse :
  21.     /// Lance les fonctions : Devinette et Relance. Choix Mode et TentativesMax
  22.     /// Devinette : Boucle principale à la recherche du bon nombre.
  23.     /// Relance : "Voulez-vous relancer une partie ?".
  24.     /// Choix du Mode : Niveau de difficulté.
  25.     /// TentativesMax : Combien de tentatives maximum vous avez ?
  26.     /// </summary>
  27.     static void PetitChat()
  28.     {
  29.       bool choixValide = false;
  30.       int i = 0;
  31.       while (i != 4)
  32.       {
  33.         Console.Clear();
  34.         Console.ForegroundColor = ConsoleColor.White;
  35.         Console.WriteLine(@"            /\_/\");
  36.         Console.WriteLine(@"           ( o.o )");
  37.         Console.WriteLine(@"            > ^ <");
  38.         Thread.Sleep(200);
  39.         Console.Clear();
  40.         Console.WriteLine(@"        /\_/\");
  41.         Console.WriteLine(@"       ( o.o )");
  42.         Console.WriteLine(@"        > ^ <");
  43.         Thread.Sleep(200);
  44.         Console.Clear();
  45.         Console.WriteLine(@"            /\_/\");
  46.         Console.WriteLine(@"           ( o.o )");
  47.         Console.WriteLine(@"            > ^ <");
  48.         Thread.Sleep(200);
  49.         Console.Clear();
  50.         Console.WriteLine(@"                /\_/\");
  51.         Console.WriteLine(@"               ( o.o )");
  52.         Console.WriteLine(@"                > ^ <");
  53.         Thread.Sleep(200);
  54.         Console.Clear();
  55.         Console.WriteLine(@"            /\_/\");
  56.         Console.WriteLine(@"           ( o.o )");
  57.         Console.WriteLine(@"            > ^ <");
  58.         Thread.Sleep(200);
  59.         i++;
  60.       }
  61.       int aMaxValue = 0;
  62.       while (choixValide == false)
  63.       {
  64.         aMaxValue = ChoixMode();
  65.         if (aMaxValue == 0)
  66.         {
  67.           Console.WriteLine("Non... Tu ne mérites même pas d'être un félin.");
  68.           choixValide = false;
  69.         }
  70.       else
  71.         {
  72.           Console.WriteLine("Ha ! Tu es joueur...");
  73.           choixValide = true;
  74.         }
  75.       }
  76.       Devinette(aMaxValue);
  77.       Relance();
  78.     }
  79.     /// <summary>
  80.     /// Devinette : Deux paramètres : pMaxValue / pTentativeMax.
  81.     /// pMaxValue : RETURN de aMaxValue de la fonction ChoixMode().
  82.     /// pTentativeMax : RETURN de aMaxValue de la fonction TentativeMaxValue().
  83.     /// ... Quand tu te rends compte que ton nommage des variables est parfaite ! ;-)...
  84.   /// </summary>
  85.   /// <param name="pMaxValue"></param>
  86.   /// <param name="pTentativeMax"></param>
  87.   static void Devinette(int pMaxValue)
  88.   {
  89.     // Initiatilasation du jeu : Question et Création du random.
  90.     int MaxValue = pMaxValue;
  91.     int xTentatives;
  92.     int aTentativeMax;
  93.     if (MaxValue == 50)
  94.     {
  95.       aTentativeMax = 9;
  96.       xTentatives = 10;
  97.     }
  98.   else if (MaxValue == 100)
  99.     {
  100.       aTentativeMax = 4;
  101.       xTentatives = 5;
  102.     }
  103.   else
  104.     {
  105.       aTentativeMax = 2;
  106.       xTentatives = 3;
  107.     }
  108.     Console.WriteLine("Le petit chat demande : Devine un nombre entre 1 et " + MaxValue + ".");
  109.     Console.ForegroundColor = ConsoleColor.White;
  110.     Console.WriteLine("Tu as " + xTentatives + " tentatives pour me prouver que tu mérites d'être un félin.");
  111.     Random rn = new Random();
  112.     int MonChiffre = rn.Next(1, MaxValue);
  113.     int tentative = 0;
  114.     bool relanceChat = false;
  115.     bool relanceChoix = false;
  116.     bool trouve = false;
  117.     Console.WriteLine("Entrez un chiffre : ");
  118.     // Boucle principale :
  119.     // Entrée monTest : comparaison :
  120.     // Nombre de tentatives :
  121.     while (trouve == false)
  122.     {
  123.       string monTest = Console.ReadLine();
  124.       int.TryParse(monTest, out int monTestInt);
  125.       if (monTestInt == MonChiffre)
  126.       {
  127.         tentative++;
  128.         Console.WriteLine("Tu as réussi : en " + tentative + " tentative(s)");
  129.         Thread.Sleep(3000);
  130.         trouve = true;
  131.       }
  132.     else if (monTestInt < MonChiffre && tentative < aTentativeMax)
  133.       {
  134.         Controle(monTestInt,pMaxValue);
  135.         Console.Write("Perdu ! Le chiffre à trouver est plus ");
  136.         Console.ForegroundColor = ConsoleColor.Red;
  137.         Console.WriteLine("grand...");
  138.         Console.ForegroundColor = ConsoleColor.White;
  139.         tentative++;
  140.       }
  141.     else if (monTestInt > MonChiffre && tentative < aTentativeMax)
  142.       {
  143.         Controle(monTestInt,pMaxValue);
  144.         Console.Write("Perdu ! Le chiffre à trouver est plus ");
  145.         Console.ForegroundColor = ConsoleColor.Green;
  146.         Console.WriteLine("petit...");
  147.         Console.ForegroundColor = ConsoleColor.White;
  148.         tentative++;
  149.       }
  150.     else if (monTestInt < MonChiffre && tentative > aTentativeMax)
  151.       {
  152.         Controle(monTestInt, pMaxValue);
  153.         Console.Write("Perdu ! Le chiffre à trouver est plus ");
  154.         Console.ForegroundColor = ConsoleColor.Red;
  155.         Console.WriteLine("grand...");
  156.         Console.ForegroundColor = ConsoleColor.Yellow;
  157.         Console.WriteLine("GNAC ! GNAC ! Tu as perdu tu as dépassé ton nombre de tentative !");
  158.         Console.WriteLine("Je ne te donne pas la solution, tente de nouveau !");
  159.         Console.ForegroundColor = ConsoleColor.White;
  160.         tentative++;
  161.       }
  162.     else if (monTestInt > MonChiffre && tentative > aTentativeMax)
  163.       {
  164.         Controle(monTestInt, pMaxValue);
  165.         Console.Write("Perdu ! Le chiffre à trouver est plus ");
  166.         Console.ForegroundColor = ConsoleColor.Green;
  167.         Console.WriteLine("petit...");
  168.         Console.ForegroundColor = ConsoleColor.Yellow;
  169.         Console.WriteLine("GNAC ! GNAC ! Tu as perdu tu as dépassé ton nombre de tentative !");
  170.         Console.WriteLine("Je ne te donne pas la solution, tente de nouveau !");
  171.         Console.ForegroundColor = ConsoleColor.White;
  172.         tentative++;
  173.       }
  174.     else
  175.       {
  176.         Controle(monTestInt, pMaxValue);
  177.         Console.ForegroundColor = ConsoleColor.Yellow;
  178.         Console.WriteLine("TU AS PERDU ! Tu es arrivé à ton nombre maximum de tentatives...");
  179.         Console.WriteLine("Je ne te donne pas la solution, tente de nouveau !");
  180.         Console.ForegroundColor = ConsoleColor.White;
  181.         tentative++;
  182.       }
  183.     }
  184.     Console.WriteLine("Voulez-vous relancer une partie ?");
  185.     Console.WriteLine("[1] = *Oui* / [2] = *Non*");
  186.     string pChoixRelance = Relance();
  187.     if (pChoixRelance == "1")
  188.     {
  189.       relanceChat = true;
  190.     }
  191.   else if (pChoixRelance == "2")
  192.     {
  193.       Console.WriteLine("Aurevoir ! Appuyez sur une touche pour Fermer.");
  194.       relanceChat = false;
  195.     }
  196.   else
  197.     {
  198.       Console.WriteLine("... Ne jamais faire confiance à l'humanoïde !");
  199.       relanceChoix = true;
  200.     }
  201.     if (relanceChoix == true)
  202.     {
  203.       Relance();
  204.     }
  205.   else if (relanceChat == true)
  206.     {
  207.       PetitChat();
  208.     }
  209.   else
  210.     {
  211.       Console.ReadLine();
  212.     }
  213.   }
  214.   /// <summary>
  215.   /// Relancer le programme après une victoire :
  216.   /// </summary>
  217.   static string Relance()
  218.   {
  219.     string monChoixRelance = Console.ReadLine();
  220.     string ChoixRelance;
  221.     if (monChoixRelance == "1")
  222.     {
  223.       ChoixRelance = monChoixRelance;
  224.     }
  225.   else if (monChoixRelance == "2")
  226.     {
  227.       ChoixRelance = monChoixRelance;
  228.     }
  229.   else
  230.     {
  231.       ChoixRelance = monChoixRelance;
  232.     }
  233.     return ChoixRelance;
  234.   }
  235.   /// <summary>
  236.   /// Controle de l'entrée utilisateur :
  237.   /// </summary>
  238.   /// <param name="paraMonTestInt"></param>
  239.   /// <param name="aMaxValue"></param>
  240.   static void Controle(int paraMonTestInt, int aMaxValue)
  241.   {
  242.     if (paraMonTestInt > aMaxValue)
  243.     {
  244.       Console.WriteLine("Sans déconner ? Qu'est ce que tu as pas compris ?");
  245.     }
  246.   else if (paraMonTestInt == 0)
  247.     {
  248.       Console.WriteLine("Nooooooooon !");
  249.     }
  250.   else
  251.     {
  252.       Console.WriteLine("Au moins tu as compris les règles du jeu : Tu as donné un chiffre valide.");
  253.     }
  254.   }
  255.   /// <summary>
  256.   /// Propose trois niveaux de difficulté :
  257.   /// </summary>
  258.   /// <returns></returns>
  259.   static int ChoixMode()
  260.   {
  261.     int maxValue;
  262.     Console.ForegroundColor = ConsoleColor.White;
  263.     Console.WriteLine("Je suis *Petit Chat* joue avec moi et devine mon chiffre mystère :");
  264.     Console.ForegroundColor = ConsoleColor.Yellow;
  265.     Console.WriteLine("Es-tu un chaton, un vrai chat, un gros matou ?");
  266.     Console.ForegroundColor = ConsoleColor.White;
  267.     Console.WriteLine("[1] = *Chaton* / [2] = *Chat*, [3] = *Gros Matou.");
  268.     string monChoixMode = Console.ReadLine();
  269.     if (monChoixMode == "1")
  270.     {
  271.       maxValue = 50;
  272.     }
  273.   else if (monChoixMode == "2")
  274.     {
  275.       maxValue = 100;
  276.     }
  277.   else if (monChoixMode == "3")
  278.     {
  279.       maxValue = 200;
  280.     }
  281.   else
  282.     {
  283.       maxValue = 0;
  284.     }
  285.     return maxValue;
  286.   }
  287. }
  288. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement