Continous Integration in der Praxis Gruppenarbeit
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

124 lines
3.8 KiB

  1. using MiniGames.Shared.Enums;
  2. using MiniGames.Shared.Models;
  3. using System.Linq;
  4. namespace MiniGames.Client.ViewModel
  5. {
  6. public class Uno : IUno
  7. {
  8. public StapelModel AblageStabel { get; set; } = new();
  9. public bool IstAblageStabelFarbeGleichHand(string ablegeStapelKarte, string neueKarte)
  10. {
  11. if (ablegeStapelKarte.Equals(neueKarte))
  12. {
  13. return true;
  14. }
  15. else
  16. {
  17. return false;
  18. }
  19. }
  20. public HandKartenModel ZiehEineKarte(HandKartenModel handStapel, StapelModel stapelModel)
  21. {
  22. HandKartenModel _handStapel = handStapel;
  23. StapelModel _stapelModel = stapelModel;
  24. _handStapel.KartenModels.Add(_stapelModel.KartenModels.FirstOrDefault());
  25. return _handStapel;
  26. }
  27. public static StapelModel ErstelleStandardKarten()
  28. {
  29. StapelModel stapelModel = new();
  30. stapelModel.KartenModels = new();
  31. for (int f = 1; f <= 4; f++)
  32. {
  33. for (int k = 1; k <= 19; k++)
  34. {
  35. var kartenbezeichnung = (Kartenbezeichnung)k;
  36. var kartenfarbe = (Farbe)f;
  37. stapelModel.KartenModels.Add(
  38. new KartenModel
  39. {
  40. Name = kartenbezeichnung.ToString(),
  41. Farbe = kartenfarbe.ToString(),
  42. Spezial = false
  43. }
  44. );
  45. }
  46. }
  47. return stapelModel;
  48. }
  49. public static StapelModel ErstelleFarbigeSpezialKarten()
  50. {
  51. StapelModel stapelModel = new();
  52. stapelModel.KartenModels = new();
  53. for (int k = 10; k <= 12; k++)
  54. {
  55. for (int f = 1; f <= 4; f++)
  56. {
  57. for (int i = 0; i < 2; i++)
  58. {
  59. var _kartenbezeichnung = (Kartenbezeichnung)k;
  60. var kartenfarbe = (Farbe)f;
  61. stapelModel.KartenModels.Add(
  62. new KartenModel
  63. {
  64. Name = _kartenbezeichnung.ToString(),
  65. Farbe = kartenfarbe.ToString(),
  66. Spezial = true
  67. }
  68. );
  69. }
  70. }
  71. }
  72. return stapelModel;
  73. }
  74. public static StapelModel ErstelleJokerKarten()
  75. {
  76. StapelModel stapelModel = new();
  77. stapelModel.KartenModels = new();
  78. for (int k = 13; k <= 14; k++)
  79. {
  80. for (int a = 0; a < 4; a++)
  81. {
  82. var kartenbezeichnung = (Kartenbezeichnung)k;
  83. stapelModel.KartenModels.Add(
  84. new KartenModel
  85. {
  86. Name = kartenbezeichnung.ToString(),
  87. Farbe = Farbe.Keine.ToString(),
  88. Spezial = true
  89. }
  90. );
  91. }
  92. }
  93. return stapelModel;
  94. }
  95. public void AblagestapelZusammenstellen()
  96. {
  97. var standardKarten = Uno.ErstelleStandardKarten();
  98. var spezialKarten = Uno.ErstelleFarbigeSpezialKarten();
  99. var jokerKarten = Uno.ErstelleJokerKarten();
  100. AblageStabel.KartenModels = new();
  101. AblageStabel.KartenModels.AddRange(standardKarten.KartenModels);
  102. AblageStabel.KartenModels.AddRange(spezialKarten.KartenModels);
  103. AblageStabel.KartenModels.AddRange(jokerKarten.KartenModels);
  104. }
  105. #endregion
  106. }
  107. }