Advertisement
Guest User

Untitled

a guest
Jul 27th, 2017
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 9.71 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5.  
  6. namespace MasterMind
  7. {
  8.     class Program
  9.     {
  10.         static void Main()
  11.         {
  12.             int[] genTal = new int[6];
  13.             int[] usrTal = new int[6];
  14.  
  15.             int sværhed = 4;
  16.  
  17.             bool win = false, correctDiff = false;
  18.  
  19.             do
  20.             {
  21.                 Console.WriteLine("Indtast din sværhedsgrad (1, svær - 4, let) : ");
  22.                 correctDiff = Int32.TryParse(Console.ReadLine(), out sværhed);
  23.             } while (correctDiff == false || sværhed > 4 || sværhed < 1);
  24.  
  25.             Console.Clear();
  26.             Console.WriteLine("Din sværhedsgrad er: " + sværhed);
  27.             genTal = GenererTal(genTal, sværhed);
  28.  
  29.             /*for (int i = 0; i < genTal.Length; i++)
  30.             {
  31.                 Console.Write(genTal[i]);
  32.             }
  33.  
  34.             Console.WriteLine();*/
  35.             for (int i = 0; i < 10; i++)
  36.             {
  37.                 usrTal = usrInput(usrTal);
  38.                 int correctCell = 0;
  39.                 int correctNumber = 0;
  40.  
  41.                 win = compare(ref correctCell, ref correctNumber, win, genTal, usrTal);
  42.                 if (win == true)
  43.                 {
  44.                     Console.WriteLine("Du vandt!");
  45.                     break;
  46.                 }
  47.                 else if (i == 9)
  48.                 {
  49.                     Console.WriteLine("Du tabte..");
  50.                 }
  51.                 else
  52.                 {
  53.                     Console.WriteLine("\n\nDu har {0} rigtige tal rigtigt placeret, og {1} rigtige tal forkert placeret.", correctCell, correctNumber);
  54.                 }
  55.             }
  56.             string sChoice;
  57.             Console.Write("\n\nVil du spille igen? (y/n) : ");
  58.             sChoice = Console.ReadLine();
  59.  
  60.             if (sChoice == "y" || sChoice == "Y")
  61.             {
  62.                 Console.Clear();
  63.                 Main();
  64.             }
  65.             else if (sChoice == "n" || sChoice == "N")
  66.             {
  67.                 Console.WriteLine("\nTak fordi du spillede.");
  68.             }
  69.             else
  70.             {
  71.                 Console.WriteLine("Svar blev ikke genkendt, tak fordi du spillede.");
  72.             }
  73.         }
  74.  
  75.         //Sammenlign de to arrays.
  76.         static bool compare(ref int correctCell, ref int correctNumber, bool win, int[] array1, int[] array2)
  77.         {
  78.             for (int i = 0; i < array1.Length; i++)
  79.             {
  80.                 if (array1[i] == array2[i])
  81.                 {
  82.                     correctCell += 1;
  83.                 }
  84.                 else
  85.                 {
  86.                     for (int p = 0; p < array2.Length; p++)
  87.                     {
  88.                         if (array1[i] == array2[p])
  89.                         {
  90.                             correctNumber += 1;
  91.                         }
  92.                     }
  93.                 }
  94.             }
  95.  
  96.             if (correctCell == 6)
  97.             {
  98.                 win = true;
  99.             }
  100.             else
  101.             {
  102.                 win = false;
  103.             }
  104.            
  105.             return win;
  106.         }
  107.  
  108.         //Generer en random talrække.
  109.         static int[] GenererTal(int[] array, int sværhed)
  110.         {
  111.             Random rand = new Random();            
  112.  
  113.             switch (sværhed)
  114.             {
  115.                     case 1:
  116.                         for (int i = 0; i < array.Length; i++)
  117.                         {
  118.                             int r = rand.Next(0, 10);
  119.                             for (int p = 0; p < array.Length; p++)
  120.                             {
  121.                                 while (array.Contains(r))
  122.                                 {
  123.                                     r = rand.Next(0, 10);
  124.                                 }
  125.                             }
  126.                             array[i] = r;
  127.                         }
  128.                         break;
  129.  
  130.                 case 2:
  131.                         bool allow = true;
  132.                         for (int i = 0; i < array.Length; i++)
  133.                         {
  134.                             int r = rand.Next(0, 10);            
  135.                             if (array.Contains(r) && allow == true)
  136.                             {
  137.                                 array[i] = r;
  138.                                 allow = false;
  139.                             }
  140.                             else
  141.                             {
  142.                                 for (int p = 0; p < array.Length; p++)
  143.                                 {
  144.                                     while (array.Contains(r))
  145.                                     {
  146.                                         r = rand.Next(0, 10);
  147.                                     }
  148.                                 }
  149.                                 array[i] = r;
  150.                             }
  151.                         }
  152.                         break;
  153.  
  154.                 case 3:
  155.                     bool firstRun = true;
  156.                     int saved = 0;
  157.                     for (int i = 0; i < array.Length; i++)
  158.                     {
  159.                         int r = rand.Next(0, 10);
  160.                         if (array.Contains(r))
  161.                         {
  162.                             if (firstRun == true)
  163.                             {
  164.                                 array[i] = r;
  165.                                 saved = r;
  166.                                 firstRun = false;
  167.                             }
  168.                             else if (firstRun == false && r != saved)
  169.                             {
  170.                                 array[i] = r;
  171.                             }
  172.                             else
  173.                             {
  174.                                 for (int p = 0; p < array.Length; p++)
  175.                                 {
  176.                                     while (array.Contains(r))
  177.                                     {
  178.                                         r = rand.Next(0, 10);
  179.                                     }
  180.                                 }
  181.                                 array[i] = r;
  182.                             }
  183.                         }
  184.                         else
  185.                         {
  186.                             for (int p = 0; p < array.Length; p++)
  187.                             {
  188.                                 while (array.Contains(r))
  189.                                 {
  190.                                     r = rand.Next(0, 10);
  191.                                 }
  192.                             }
  193.                             array[i] = r;
  194.                         }
  195.                     }
  196.                     break;
  197.  
  198.                 case 4:
  199.                     firstRun = true;
  200.                     saved = 0;
  201.                     int tæller = 0;
  202.                     for (int i = 0; i < array.Length; i++)
  203.                     {
  204.                         int r = rand.Next(0, 10);
  205.                         if (array.Contains(r))
  206.                         {
  207.                             if (firstRun == true)
  208.                             {
  209.                                 array[i] = r;
  210.                                 saved = r;
  211.                                 firstRun = false;
  212.                             }
  213.                             else if (firstRun == false && r == saved && tæller <= 2)
  214.                             {
  215.                                 array[i] = r;
  216.                                 tæller += 1;
  217.                             }
  218.                             else
  219.                             {
  220.                                 for (int p = 0; p < array.Length; p++)
  221.                                 {
  222.                                     while (array.Contains(r))
  223.                                     {
  224.                                         r = rand.Next(0, 10);
  225.                                     }
  226.                                 }
  227.                                 array[i] = r;
  228.                             }
  229.                         }
  230.                         else
  231.                         {
  232.                             for (int p = 0; p < array.Length; p++)
  233.                             {
  234.                                 while (array.Contains(r))
  235.                                 {
  236.                                     r = rand.Next(0, 10);
  237.                                 }
  238.                             }
  239.                             array[i] = r;
  240.                         }
  241.                     }
  242.                     break;
  243.  
  244.                 default:
  245.                     Console.WriteLine("Sværhedsgraden kan kun være 1 - 4");
  246.                     break;
  247.             }
  248.             return array;
  249.         }
  250.  
  251.         //Indlæs brugerens talrække.
  252.         static int[] usrInput(int[] array)
  253.         {
  254.             try
  255.             {
  256.                 bool cvtSuccesfull = false;
  257.                 while (cvtSuccesfull == false)
  258.                 {
  259.                     Console.Write("Indtast dine 6 tal: ");
  260.                     for (int i = 0; i < array.Length; i++)
  261.                     {
  262.                         ConsoleKeyInfo cki = new ConsoleKeyInfo();
  263.                         cki = Console.ReadKey();
  264.                         string cChar = cki.KeyChar.ToString();
  265.                         cvtSuccesfull = Int32.TryParse(cChar, out array[i]);
  266.                         if (cvtSuccesfull == false)
  267.                         {
  268.                             Console.WriteLine("\n\nDu kan kun indtaste heltal.");
  269.                             break;
  270.                         }
  271.                     }
  272.                 }
  273.                 Console.WriteLine();
  274.             }
  275.             catch(Exception exc)
  276.             {
  277.                 Console.WriteLine(exc);
  278.             }
  279.             return array;
  280.         }
  281.     }
  282. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement