Guest User

Untitled

a guest
Jul 21st, 2018
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.08 KB | None | 0 0
  1. // Euro-Millionen grade D by Thomas Heuberger 2011-03-02
  2.  
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Linq;
  6.  
  7. namespace EuroMille {
  8. class Program {
  9. private static readonly Random Random = new Random();
  10. static void Main() {
  11. bool again;
  12. Console.WriteLine("Willkommen zu Euromillionen");
  13.  
  14. var ranks = new Dictionary<int, Dictionary<int, int>> {
  15. {5, new Dictionary<int, int> {{2, 1}, {1, 2}, {0, 3}}},
  16. {4, new Dictionary<int, int> {{2 ,4}, {1, 5}, {0, 6}}},
  17. {3, new Dictionary<int, int> {{2, 7}, {1, 8}, {0, 10}}},
  18. {2, new Dictionary<int, int> {{2, 9}, {1, 12}}},
  19. {1, new Dictionary<int, int> {{2, 11}}}};
  20.  
  21. var numbers = Enumerable.Range(1, 50); var stars = Enumerable.Range(1, 9);
  22.  
  23. do {
  24. var inputs = new List<string> { "j", "n" };
  25. string input;
  26.  
  27. do {
  28. Console.Write("Quicktip? [j/n]: ");
  29. } while (!inputs.Contains(input = Console.ReadLine()));
  30.  
  31. var pickedNumbers = new List<int>(); var pickedStars = new List<int>();
  32.  
  33. if (input == "j") {
  34. pickedNumbers = numbers.OrderBy(r => Random.Next()).Take(5).ToList();
  35. pickedStars = stars.OrderBy(r => Random.Next()).Take(2).ToList();
  36. } else {
  37. for (var i = 1; i <= 5; i++) {
  38. int number;
  39. do {
  40. Console.Write("Bitte {0}te Zahl eingeben [1-50]: ", i);
  41. int.TryParse(Console.ReadLine(), out number);
  42. } while (!numbers.Contains(number) || pickedNumbers.Contains(number));
  43. pickedNumbers.Add(number);
  44. }
  45. for (var i = 1; i <= 2; i++) {
  46. int number;
  47. do {
  48. Console.Write("Bitte {0}te Zahl eingeben [1-9]: ", i);
  49. int.TryParse(Console.ReadLine(), out number);
  50. } while (!stars.Contains(number) || pickedStars.Contains(number));
  51. pickedStars.Add(number);
  52. }
  53. }
  54.  
  55. Console.WriteLine("");
  56. pickedNumbers.Sort(); pickedStars.Sort();
  57.  
  58. Console.WriteLine("Ihr Tip: Zahlen: {0}; Sterne: {1}", string.Join(", ", pickedNumbers), string.Join(", ", pickedStars));
  59.  
  60. var drawnNumbers = numbers.OrderBy(r => Random.Next()).Take(5).OrderBy(o => o).ToList();
  61. var drawnStars = stars.OrderBy(r => Random.Next()).Take(2).OrderBy(o => o).ToList();
  62.  
  63. Console.WriteLine("Ziehung: Zahlen: {0}; Sterne: {1}", string.Join(", ", drawnNumbers), string.Join(", ", drawnStars)); Console.WriteLine("");
  64.  
  65. var matchingNumbers = pickedNumbers.Intersect(drawnNumbers);
  66. var matchingStars = pickedStars.Intersect(drawnStars);
  67. var matchingNumbersCount = matchingNumbers.Count();
  68. var matchingStarsCount = matchingStars.Count();
  69.  
  70. Console.WriteLine("{0} Zahl(en) ({1}) und {2} Stern(e) ({3}) stimmen überein!",
  71. matchingNumbersCount, matchingNumbersCount > 0 ? string.Join(", ", matchingNumbers) : "-",
  72. matchingStarsCount, matchingStarsCount > 0 ? string.Join(", ", matchingStars) : "-");
  73.  
  74. var rank = ranks.ContainsKey(matchingNumbersCount) ?
  75. (ranks[matchingNumbersCount].ContainsKey(matchingStarsCount) ? ranks[matchingNumbersCount][matchingStarsCount] : 0) : 0;
  76.  
  77. Console.WriteLine(rank > 0 ? "Rang " + rank + " erreicht" : "kein Rang erreicht!");
  78. do {
  79. Console.Write("nochmal? [j/n]: ");
  80. } while (!inputs.Contains(input = Console.ReadLine()));
  81. again = (input == "j");
  82. } while (again);
  83. }
  84. }
  85. }
Add Comment
Please, Sign In to add comment