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.

125 lines
3.9 KiB

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