Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- namespace MasterMind
- {
- class Program
- {
- static void Main()
- {
- int[] genTal = new int[6];
- int[] usrTal = new int[6];
- int sværhed = 4;
- bool win = false, correctDiff = false;
- do
- {
- Console.WriteLine("Indtast din sværhedsgrad (1, svær - 4, let) : ");
- correctDiff = Int32.TryParse(Console.ReadLine(), out sværhed);
- } while (correctDiff == false || sværhed > 4 || sværhed < 1);
- Console.Clear();
- Console.WriteLine("Din sværhedsgrad er: " + sværhed);
- genTal = GenererTal(genTal, sværhed);
- /*for (int i = 0; i < genTal.Length; i++)
- {
- Console.Write(genTal[i]);
- }
- Console.WriteLine();*/
- for (int i = 0; i < 10; i++)
- {
- usrTal = usrInput(usrTal);
- int correctCell = 0;
- int correctNumber = 0;
- win = compare(ref correctCell, ref correctNumber, win, genTal, usrTal);
- if (win == true)
- {
- Console.WriteLine("Du vandt!");
- break;
- }
- else if (i == 9)
- {
- Console.WriteLine("Du tabte..");
- }
- else
- {
- Console.WriteLine("\n\nDu har {0} rigtige tal rigtigt placeret, og {1} rigtige tal forkert placeret.", correctCell, correctNumber);
- }
- }
- string sChoice;
- Console.Write("\n\nVil du spille igen? (y/n) : ");
- sChoice = Console.ReadLine();
- if (sChoice == "y" || sChoice == "Y")
- {
- Console.Clear();
- Main();
- }
- else if (sChoice == "n" || sChoice == "N")
- {
- Console.WriteLine("\nTak fordi du spillede.");
- }
- else
- {
- Console.WriteLine("Svar blev ikke genkendt, tak fordi du spillede.");
- }
- }
- //Sammenlign de to arrays.
- static bool compare(ref int correctCell, ref int correctNumber, bool win, int[] array1, int[] array2)
- {
- for (int i = 0; i < array1.Length; i++)
- {
- if (array1[i] == array2[i])
- {
- correctCell += 1;
- }
- else
- {
- for (int p = 0; p < array2.Length; p++)
- {
- if (array1[i] == array2[p])
- {
- correctNumber += 1;
- }
- }
- }
- }
- if (correctCell == 6)
- {
- win = true;
- }
- else
- {
- win = false;
- }
- return win;
- }
- //Generer en random talrække.
- static int[] GenererTal(int[] array, int sværhed)
- {
- Random rand = new Random();
- switch (sværhed)
- {
- case 1:
- for (int i = 0; i < array.Length; i++)
- {
- int r = rand.Next(0, 10);
- for (int p = 0; p < array.Length; p++)
- {
- while (array.Contains(r))
- {
- r = rand.Next(0, 10);
- }
- }
- array[i] = r;
- }
- break;
- case 2:
- bool allow = true;
- for (int i = 0; i < array.Length; i++)
- {
- int r = rand.Next(0, 10);
- if (array.Contains(r) && allow == true)
- {
- array[i] = r;
- allow = false;
- }
- else
- {
- for (int p = 0; p < array.Length; p++)
- {
- while (array.Contains(r))
- {
- r = rand.Next(0, 10);
- }
- }
- array[i] = r;
- }
- }
- break;
- case 3:
- bool firstRun = true;
- int saved = 0;
- for (int i = 0; i < array.Length; i++)
- {
- int r = rand.Next(0, 10);
- if (array.Contains(r))
- {
- if (firstRun == true)
- {
- array[i] = r;
- saved = r;
- firstRun = false;
- }
- else if (firstRun == false && r != saved)
- {
- array[i] = r;
- }
- else
- {
- for (int p = 0; p < array.Length; p++)
- {
- while (array.Contains(r))
- {
- r = rand.Next(0, 10);
- }
- }
- array[i] = r;
- }
- }
- else
- {
- for (int p = 0; p < array.Length; p++)
- {
- while (array.Contains(r))
- {
- r = rand.Next(0, 10);
- }
- }
- array[i] = r;
- }
- }
- break;
- case 4:
- firstRun = true;
- saved = 0;
- int tæller = 0;
- for (int i = 0; i < array.Length; i++)
- {
- int r = rand.Next(0, 10);
- if (array.Contains(r))
- {
- if (firstRun == true)
- {
- array[i] = r;
- saved = r;
- firstRun = false;
- }
- else if (firstRun == false && r == saved && tæller <= 2)
- {
- array[i] = r;
- tæller += 1;
- }
- else
- {
- for (int p = 0; p < array.Length; p++)
- {
- while (array.Contains(r))
- {
- r = rand.Next(0, 10);
- }
- }
- array[i] = r;
- }
- }
- else
- {
- for (int p = 0; p < array.Length; p++)
- {
- while (array.Contains(r))
- {
- r = rand.Next(0, 10);
- }
- }
- array[i] = r;
- }
- }
- break;
- default:
- Console.WriteLine("Sværhedsgraden kan kun være 1 - 4");
- break;
- }
- return array;
- }
- //Indlæs brugerens talrække.
- static int[] usrInput(int[] array)
- {
- try
- {
- bool cvtSuccesfull = false;
- while (cvtSuccesfull == false)
- {
- Console.Write("Indtast dine 6 tal: ");
- for (int i = 0; i < array.Length; i++)
- {
- ConsoleKeyInfo cki = new ConsoleKeyInfo();
- cki = Console.ReadKey();
- string cChar = cki.KeyChar.ToString();
- cvtSuccesfull = Int32.TryParse(cChar, out array[i]);
- if (cvtSuccesfull == false)
- {
- Console.WriteLine("\n\nDu kan kun indtaste heltal.");
- break;
- }
- }
- }
- Console.WriteLine();
- }
- catch(Exception exc)
- {
- Console.WriteLine(exc);
- }
- return array;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement