using MiniGames.Shared.Enums; using MiniGames.Shared.Models; using System; using System.Linq; namespace MiniGames.Client.ViewModel { public class Uno : IUno { public StapelModel AblageStabel { get; set; } public bool IstAblageStabelFarbeGleichHand(string ablegeStapelKarte, string neueKarte) { if (ablegeStapelKarte.Equals(neueKarte)) { return true; } else { return false; } } public HandKartenModel ZiehEineKarte(HandKartenModel handStapel, StapelModel stapelModel) { HandKartenModel _handStapel = handStapel; StapelModel _stapelModel = stapelModel; _handStapel.KartenModels.Add(_stapelModel.KartenModels.FirstOrDefault()); return _handStapel; } public static StapelModel ErstelleStandardKarten() { StapelModel stapelModel = new(); stapelModel.KartenModels = new(); for (int f = 1; f <= 4; f++) { for (int k = 1; k <= 19; k++) { var kartenbezeichnung = (Kartenbezeichnung)k; var kartenfarbe = (Farbe)f; stapelModel.KartenModels.Add( new KartenModel { Name = kartenbezeichnung.ToString(), Farbe = kartenfarbe.ToString(), Spezial = false } ); } } return stapelModel; } public static StapelModel ErstelleFarbigeSpezialKarten() { StapelModel stapelModel = new(); stapelModel.KartenModels = new(); for (int k = 10; k <= 12; k++) { for (int f = 1; f <= 4; f++) { for (int i = 0; i < 2; i++) { var _kartenbezeichnung = (Kartenbezeichnung)k; var kartenfarbe = (Farbe)f; stapelModel.KartenModels.Add( new KartenModel { Name = _kartenbezeichnung.ToString(), Farbe = kartenfarbe.ToString(), Spezial = true } ); } } } return stapelModel; } public static StapelModel ErstelleJokerKarten() { StapelModel stapelModel = new(); stapelModel.KartenModels = new(); for (int k = 13; k <= 14; k++) { for (int a = 0; a < 4; a++) { var kartenbezeichnung = (Kartenbezeichnung)k; stapelModel.KartenModels.Add( new KartenModel { Name = kartenbezeichnung.ToString(), Farbe = Farbe.Keine.ToString(), Spezial = true } ); } } return stapelModel; } public static StapelModel AblagestapelZusammenstellen() { var standardKarten = Uno.ErstelleStandardKarten(); var spezialKarten = Uno.ErstelleFarbigeSpezialKarten(); var jokerKarten = Uno.ErstelleJokerKarten(); StapelModel stapelModel = new(); stapelModel.KartenModels = new(); stapelModel.KartenModels.AddRange(standardKarten.KartenModels); stapelModel.KartenModels.AddRange(spezialKarten.KartenModels); stapelModel.KartenModels.AddRange(jokerKarten.KartenModels); return stapelModel; } } }