Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Euro-Millionen grade D by Thomas Heuberger 2011-03-02
- using System;
- using System.Collections.Generic;
- using System.Linq;
- namespace EuroMille {
- class Program {
- private static readonly Random Random = new Random();
- static void Main() {
- bool again;
- Console.WriteLine("Willkommen zu Euromillionen");
- var ranks = new Dictionary<int, Dictionary<int, int>> {
- {5, new Dictionary<int, int> {{2, 1}, {1, 2}, {0, 3}}},
- {4, new Dictionary<int, int> {{2 ,4}, {1, 5}, {0, 6}}},
- {3, new Dictionary<int, int> {{2, 7}, {1, 8}, {0, 10}}},
- {2, new Dictionary<int, int> {{2, 9}, {1, 12}}},
- {1, new Dictionary<int, int> {{2, 11}}}};
- var numbers = Enumerable.Range(1, 50); var stars = Enumerable.Range(1, 9);
- do {
- var inputs = new List<string> { "j", "n" };
- string input;
- do {
- Console.Write("Quicktip? [j/n]: ");
- } while (!inputs.Contains(input = Console.ReadLine()));
- var pickedNumbers = new List<int>(); var pickedStars = new List<int>();
- if (input == "j") {
- pickedNumbers = numbers.OrderBy(r => Random.Next()).Take(5).ToList();
- pickedStars = stars.OrderBy(r => Random.Next()).Take(2).ToList();
- } else {
- for (var i = 1; i <= 5; i++) {
- int number;
- do {
- Console.Write("Bitte {0}te Zahl eingeben [1-50]: ", i);
- int.TryParse(Console.ReadLine(), out number);
- } while (!numbers.Contains(number) || pickedNumbers.Contains(number));
- pickedNumbers.Add(number);
- }
- for (var i = 1; i <= 2; i++) {
- int number;
- do {
- Console.Write("Bitte {0}te Zahl eingeben [1-9]: ", i);
- int.TryParse(Console.ReadLine(), out number);
- } while (!stars.Contains(number) || pickedStars.Contains(number));
- pickedStars.Add(number);
- }
- }
- Console.WriteLine("");
- pickedNumbers.Sort(); pickedStars.Sort();
- Console.WriteLine("Ihr Tip: Zahlen: {0}; Sterne: {1}", string.Join(", ", pickedNumbers), string.Join(", ", pickedStars));
- var drawnNumbers = numbers.OrderBy(r => Random.Next()).Take(5).OrderBy(o => o).ToList();
- var drawnStars = stars.OrderBy(r => Random.Next()).Take(2).OrderBy(o => o).ToList();
- Console.WriteLine("Ziehung: Zahlen: {0}; Sterne: {1}", string.Join(", ", drawnNumbers), string.Join(", ", drawnStars)); Console.WriteLine("");
- var matchingNumbers = pickedNumbers.Intersect(drawnNumbers);
- var matchingStars = pickedStars.Intersect(drawnStars);
- var matchingNumbersCount = matchingNumbers.Count();
- var matchingStarsCount = matchingStars.Count();
- Console.WriteLine("{0} Zahl(en) ({1}) und {2} Stern(e) ({3}) stimmen überein!",
- matchingNumbersCount, matchingNumbersCount > 0 ? string.Join(", ", matchingNumbers) : "-",
- matchingStarsCount, matchingStarsCount > 0 ? string.Join(", ", matchingStars) : "-");
- var rank = ranks.ContainsKey(matchingNumbersCount) ?
- (ranks[matchingNumbersCount].ContainsKey(matchingStarsCount) ? ranks[matchingNumbersCount][matchingStarsCount] : 0) : 0;
- Console.WriteLine(rank > 0 ? "Rang " + rank + " erreicht" : "kein Rang erreicht!");
- do {
- Console.Write("nochmal? [j/n]: ");
- } while (!inputs.Contains(input = Console.ReadLine()));
- again = (input == "j");
- } while (again);
- }
- }
- }
Add Comment
Please, Sign In to add comment