public bool IstFeldAnkreuzbar(Spielfeld spielfeld, Spielfarbe spielfarbe, int spielfarbeAnkreuzfeldIndex) { if (spielfeld.AnkreuzFelderSpielfarbe[spielfarbe][spielfarbeAnkreuzfeldIndex].IstAnkreuzbar) { if (spielfeld.AnkreuzFelderSpielfarbe[spielfarbe][spielfarbeAnkreuzfeldIndex].IstSchloss) { if (spielfeld.AnkreuzFelderSpielfarbe[spielfarbe].Where(feld => feld.IstAngekreuzt).Count() >= 5) { return(true); } else { return(false); } } else { return(true); } } else { return(false); } }
public int SummeBerechnen(Spielfeld spielfeld, Spielfarbe spielfarbe) { int[] anzahlKreuzeZuPunkten = { 0, 1, 3, 6, 10, 15, 21, 28, 36, 45, 55, 66, 78 }; int result; int anzahlKreuze = spielfeld.AnkreuzFelderSpielfarbe[spielfarbe].Where((box) => box.IstAngekreuzt).Count(); result = anzahlKreuzeZuPunkten[anzahlKreuze]; return(result); }
public string ErmittleAnzeigeAugenzahl(Spielfarbe spielfarbe, int ankreuzFeldAugenzahlIndex, int anzahlFelderJeSpielfarbe) { string anzeigeAugenZahl; if (spielfarbe == Spielfarbe.Gruen || spielfarbe == Spielfarbe.Blau) { int gedrehteAugenzahl = (Math.Abs(ankreuzFeldAugenzahlIndex - anzahlFelderJeSpielfarbe) + 2); anzeigeAugenZahl = gedrehteAugenzahl.ToString(); } else { anzeigeAugenZahl = ankreuzFeldAugenzahlIndex.ToString(); } return(anzeigeAugenZahl); }
public Spielfeld SpielfarbeWurf(Spielfarbe spielfarbe, int augenZahl) { //Kreuze zu spielfarbe und wurf entsprechendes SpielfarbeAnkreuzFeld an int spielfarbeAnkreuzfeldIndex = ErmittleSpielfarbeAnkreuzfeldIndex(augenZahl); if (IstFeldAnkreuzbar(_spielfeld, spielfarbe, spielfarbeAnkreuzfeldIndex)) { _spielfeld.AnkreuzFelderSpielfarbe[spielfarbe][spielfarbeAnkreuzfeldIndex].IstAngekreuzt = true; //Setzte alle SpielfarbeAnkreuzFelder links vom angekreuzten Feld auf nicht ankreuzbar for (int i = 0; i <= spielfarbeAnkreuzfeldIndex; i++) { _spielfeld.AnkreuzFelderSpielfarbe[spielfarbe][i].IstNichtAnkreuzbar = true; } } return(_spielfeld); }
/// <summary> /// Aktuelle Spielfeldinformationen in der UI darstellen /// </summary> /// <param name="spielfeld"></param> public void SetzeSpielfeld(Spielfeld spielfeld) { //Ankreuzfelder in Spielfarbe setzen int zeile = 0; foreach (var ankreuzFelderSpielfarbe in spielfeld.AnkreuzFelderSpielfarbe) { Spielfarbe spielfarbe = ankreuzFelderSpielfarbe.Key; int spalte = 0; foreach (var ankreuzFeld in ankreuzFelderSpielfarbe.Value) { // Create the tile TileAnkreuzFeldSpielfarbe tile = new TileAnkreuzFeldSpielfarbe(ankreuzFeld, spielfarbe); // Add tap recognition. TapGestureRecognizer tapGestureRecognizer = new TapGestureRecognizer(); tapGestureRecognizer.Tapped += OnTileTappedAsync; tile.TileContentView.GestureRecognizers.Add(tapGestureRecognizer); gridAnkreuzFelderSpielfarben.Children.Add(tile.TileContentView, spalte, zeile); spalte++; } zeile++; } //Ankreuzfelder der Fehlversuche setzen int spalteAnkreuzFeldFehlversuch = 0; foreach (var ankreuzFeld in spielfeld.AnkreuzFelderFehlversuche) { // Create the tile TileAnkreuzFeldFehlversuch tile = new TileAnkreuzFeldFehlversuch(spalteAnkreuzFeldFehlversuch, ankreuzFeld.IstAngekreuzt, ankreuzFeld.IstNichtAnkreuzbar); // Add tap recognition. TapGestureRecognizer tapGestureRecognizer = new TapGestureRecognizer(); tapGestureRecognizer.Tapped += OnTileAnkreuzFeldFehlversuchTappedAsync; tile.TileContentView.GestureRecognizers.Add(tapGestureRecognizer); gridFehlversuche.Children.Add(tile.TileContentView, spalteAnkreuzFeldFehlversuch, 0); spalteAnkreuzFeldFehlversuch++; } }
private void ErzeugeSpielfarbeAnkreuzFelder(Spielfarbe spielfarbe) { int[] indexZuAugenZahl = { 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 }; int ankreuzFeldAugenzahlIndex; string anzeigeAugenZahl; for (int i = 0; i < AnzahlFelderJeSpielfarbe - 1; i++) { ankreuzFeldAugenzahlIndex = indexZuAugenZahl[i]; anzeigeAugenZahl = ErmittleAnzeigeAugenzahl(spielfarbe, ankreuzFeldAugenzahlIndex, AnzahlFelderJeSpielfarbe); AnkreuzFelderSpielfarbe[spielfarbe][i] = new AnkreuzFeldAugenzahl(indexZuAugenZahl[i], anzeigeAugenZahl, istSchloss: false); } //Das letztes Feld jeder Reihe als Schloss markieren anzeigeAugenZahl = ErmittleAnzeigeAugenzahl(spielfarbe, indexZuAugenZahl[AnzahlFelderJeSpielfarbe - 1], AnzahlFelderJeSpielfarbe); AnkreuzFelderSpielfarbe[spielfarbe][AnzahlFelderJeSpielfarbe - 1] = new AnkreuzFeldAugenzahl(indexZuAugenZahl[AnzahlFelderJeSpielfarbe - 1], anzeigeAugenZahl, istSchloss: true); }
public TileAnkreuzFeldSpielfarbe(AnkreuzFeldAugenzahl ankreuzFeldAugenzahl, Spielfarbe spielfarbe) { this.Augenzahl = ankreuzFeldAugenzahl.Augenzahl; this.Spielfarbe = spielfarbe; string textLabelX = ""; string textLabel = ankreuzFeldAugenzahl.AnzeigeAugenZahl.ToString(); if (ankreuzFeldAugenzahl.IstSchloss) { if (ankreuzFeldAugenzahl.IstAngekreuzt) { textLabel = "\uD83D\uDD12"; } else { textLabel = "\uD83D\uDD13"; } } Color labelTextColor = Color.Black; if (ankreuzFeldAugenzahl.IstAngekreuzt) { labelTextColor = Color.LightGray; int anzahlZeichenAnzeigeAugenzahl = ankreuzFeldAugenzahl.AnzeigeAugenZahl.ToString().Length; int anzahlSpaces = (anzahlZeichenAnzeigeAugenzahl > 0) ? anzahlZeichenAnzeigeAugenzahl - 1 : 0; string spaces = new String(' ', anzahlSpaces); textLabelX = spaces + "X"; } else if (ankreuzFeldAugenzahl.IstNichtAnkreuzbar) { //textLabel = ""; labelTextColor = Color.LightGray; textLabelX = ""; } Label label = new Label { Text = textLabel, TextColor = labelTextColor, BackgroundColor = Color.White, FontAttributes = FontAttributes.Bold, HorizontalTextAlignment = TextAlignment.Center, VerticalTextAlignment = TextAlignment.Center }; AbsoluteLayout.SetLayoutFlags(label, AbsoluteLayoutFlags.PositionProportional); AbsoluteLayout.SetLayoutBounds(label, new Rectangle(0.5, 0.5, AbsoluteLayout.AutoSize, AbsoluteLayout.AutoSize)); Label labelX = new Label { Text = textLabelX, TextColor = Color.LightSlateGray, FontAttributes = FontAttributes.Bold, HorizontalTextAlignment = TextAlignment.Center, VerticalTextAlignment = TextAlignment.Center }; AbsoluteLayout.SetLayoutFlags(labelX, AbsoluteLayoutFlags.PositionProportional); AbsoluteLayout.SetLayoutBounds(labelX, new Rectangle(0.5, 0.5, AbsoluteLayout.AutoSize, AbsoluteLayout.AutoSize)); Color backgroundColor = Color.White; if (spielfarbe == Spielfarbe.Rot) { backgroundColor = Color.Red; } if (spielfarbe == Spielfarbe.Gelb) { backgroundColor = Color.Yellow; } if (spielfarbe == Spielfarbe.Gruen) { backgroundColor = Color.Green; } if (spielfarbe == Spielfarbe.Blau) { backgroundColor = Color.SkyBlue; } TileContentView = new ContentView { //Padding = new Thickness(0, 0, 0, 0), //Margin = new Thickness(0, 0, 0, 0), //VerticalOptions = LayoutOptions.CenterAndExpand, //HorizontalOptions = LayoutOptions.CenterAndExpand, Content = new Frame { BackgroundColor = backgroundColor, Padding = new Thickness(5, 5, 5, 5), //Margin = new Thickness(0, 0, 0, 0), //VerticalOptions = LayoutOptions.Center, //HorizontalOptions = LayoutOptions.Center, Content = new AbsoluteLayout { Padding = new Thickness(0), BackgroundColor = Color.White, VerticalOptions = LayoutOptions.FillAndExpand, HorizontalOptions = LayoutOptions.FillAndExpand, Children = { label, labelX } } } }; // Don't let touch pass us by. TileContentView.BackgroundColor = Color.Transparent; // Add TileView to dictionary for obtaining Tile from TileView Dictionary.Add(TileContentView, this); }