/// <summary> /// Fisher and Yates' method /// </summary> public void shuffle() { Card tmp = new Card(); Random r = new Random(); int randomIndex; for (int j = deck.Count() - 1; j>0; j--) { randomIndex = r.Next(deck.Count() - j); tmp = deck[j]; deck[j] = deck[randomIndex]; deck[randomIndex] = tmp; } }
/// <summary> /// If allowed moves acceptable card on top of the previous card on the gameArea /// </summary> /// <returns>bool value indicateing wether the hit is made</returns> public bool hit(Card target, Card hit) { //TODO: return false; }
public void makeMove(Card card) { foreach (Card c in _hand) { if (card.Kind.Equals(c.Kind) && card.Rank.Equals(c.Rank)) { Hand.Remove(c); return; } } }
public static void notifyGameAreaUpdate(Card card, MainPage element){ element.updateGameArea(card); }
private void updateGameArea(Card c) { addImageToCard(c); StackPanel slot = getNextSlot(_view.MoveNr); (slot.Children.FirstOrDefault() as Image).Source = c.Image.Source; }
//private void GridViewDragItemsStarting(object sender, DragItemsStartingEventArgs e) //{ // var item = e.Items.FirstOrDefault(); // if (item == null) // return; // var card = gwPl1Hand.SelectedItem; // e.Data.Properties.Add("item", item); // e.Data.Properties.Add("card", card); // e.Data.Properties.Add("gridSource", sender); //} //private void GridViewDrop(object sender, DragEventArgs e) //{ // object gridSource; // e.Data.Properties.TryGetValue("gridSource", out gridSource); // //if (gridSource == sender) // // return; // object sourceItem; // e.Data.Properties.TryGetValue("item", out sourceItem); // // if (sourceItem == null) // // return; // object movedCard; // e.Data.Properties.TryGetValue("card", out movedCard); // _view.CardsOnTable.Add((Card)movedCard); //} private void cardTapped(object sender, TappedRoutedEventArgs e) { if (_view.CardsOnTable.Count % 2 == 0 && _view.CurrentPlayer.Id == _view.MoveIndex) { Card tappedCard = new Card(gwPl1Hand.SelectedItem as Image); addImageToCard(tappedCard); StackPanel slot = getNextSlot(_view.MoveNr); (slot.Children.FirstOrDefault() as Image).Source = (gwPl1Hand.SelectedItem as Image).Source; _view.moveMade(tappedCard); setHandDisplay(); } else { if (_view.CardsOnTable.Count % 2 == 1 && _view.CurrentPlayer.Id == _view.HitIndex) { Card tappedCard = new Card(gwPl1Hand.SelectedItem as Image); addImageToCard(tappedCard); StackPanel slot = getNextSlot(_view.MoveNr); (slot.Children.FirstOrDefault() as Image).Source = (gwPl1Hand.SelectedItem as Image).Source; _view.hitMade(tappedCard); setHandDisplay(); } } }
public void addImageToCard(Card c) { StringBuilder fileName = new StringBuilder(); StringBuilder iName = new StringBuilder(); fileName.Append(@"/Assets/images/"); fileName.Append(c.Kind.ToString()); iName.Append(((int)c.Kind).ToString()); fileName.Append(((int)c.Rank).ToString()); iName.Append(((int)c.Rank).ToString()); fileName.Append(".png"); string fn = fileName.ToString(); c.Image.Source = ImageFromRelativePath(this, fn); c.Image.Name = iName.ToString(); }