public Card MakePlay(Card Down, Hand Hand) { List<Card> V = new List<Card>(); foreach (Card Card in Hand) { if (_Function.Invoke(Down, Card)) V.Add(Card); } int M = Int32.MaxValue; Card Choice = null; foreach (Card Card in V) { int N = 0; foreach (Card DownCard in _ImaginaryDeck) { if (_Function.Invoke(DownCard, Card)) N++; } if (N < M) { M = N; Choice = Card; } } return Choice; }
public bool ValidatePlay(Card Down, Card Played, Player player) { Console.Clear(); Console.WriteLine("My Play:"); BigCard (Played, false); Console.WriteLine("vvvvv"); BigCard (Down, true); Console.WriteLine("Was this valid?"); while (true) { Console.Write("(y/n/w)(t/f/?)(1/0/2): "); string input = Console.ReadLine(); if (input.Length == 0) continue; input = input.ToLower(); switch (input[0]) { case 'y': case 't': case '1': return true; case 'n': case 'f': case '0': return false; case 'w': case '?': case '2': Console.WriteLine(player); break; } } }
public void VerifyPlay(Card DownCard, Card Played, bool Valid) { AttributeValue[] Entry = new AttributeValue[5]; Entry[0] = new IntegerValue(DownCard.Number); Entry[1] = new IntegerValue(DownCard.Suit); Entry[2] = new IntegerValue(Played.Number); Entry[3] = new IntegerValue(Played.Suit); Entry[4] = new BooleanValue(Valid); if (_Forest == null) _Forest = new Forest(1, 1, delegate(int i) { DataSet D = new DataSet(5); D.AddEntry(Entry); return D; }, 4); else _Forest.AddEntry(Entry); }
public bool ValidatePlay(Card DownCard, Card Played, Player played) { AttributeValue[] Entry = new AttributeValue[5]; Entry[0] = new IntegerValue(DownCard.Number); Entry[1] = new IntegerValue(DownCard.Suit); Entry[2] = new IntegerValue(Played.Number); Entry[3] = new IntegerValue(Played.Suit); Entry[4] = new BooleanValue(false); if (_Forest == null) return true; else return Convert.ToBoolean(_Forest.MakeDecision(Entry).ToString()); }
public Game(Player Master, List<Player> Learners, Random Random) { _Random = Random; _Deck = new Deck(); _Deck.Shuffle(_Random); _Return = new Deck(true); _Master = Master; _Learners = Learners; _MasterHand = new Hand(10, _Deck); foreach(Player L in _Learners) _LearnerHands.Add(new Hand(10, _Deck)); _DownCard = _Deck.Draw(); }
public Card MakePlay(Card Down, Hand Hand) { Console.Clear(); Console.WriteLine("Your Play:"); BigCard(Down, true); ShowHand(Hand); //Console.WriteLine(Hand); Console.Write("(Nothing for draw): "); while (true) { string input = Console.ReadLine(); if (input.Length == 0) // Draw return null; try { int C = Convert.ToInt32(input); if (C > -1) return Hand[C]; } catch (Exception e) { Console.WriteLine(e.Message); } } }
public Card MakePlay(Card DownCard, Hand Hand) { if (_Forest == null) return Hand[0]; AttributeValue[] Entry = new AttributeValue[5]; Entry[0] = new IntegerValue(DownCard.Number); Entry[1] = new IntegerValue(DownCard.Suit); List<Card> V = new List<Card>(); foreach (Card Card in Hand) { Entry[2] = new IntegerValue(Card.Number); Entry[3] = new IntegerValue(Card.Suit); bool a = Convert.ToBoolean(_Forest.MakeDecision(Entry).ToString()); if (a) V.Add(Card); } int M = Int32.MaxValue; Card Choice = null; foreach (Card Card in V) { int N = 0; Entry[2] = new IntegerValue(Card.Number); Entry[3] = new IntegerValue(Card.Suit); foreach (Card Down in _ImaginaryDeck) { Entry[0] = new IntegerValue(DownCard.Number); Entry[1] = new IntegerValue(DownCard.Suit); bool a = Convert.ToBoolean(_Forest.MakeDecision(Entry).ToString()); if (a) N++; } if (N < M) { M = N; Choice = Card; } } return Choice; }
public void VerifyPlay(Card Down, Card Played, bool Valid) { return; }
public bool ValidatePlay(Card Down, Card Played, Player player) { return _Function.Invoke(Down, Played); }
private void WriteCard(Card card) { ConsoleColor prev = Console.ForegroundColor; Console.ForegroundColor = (card.Suit == 2 || card.Suit == 4) ? ConsoleColor.Red : ConsoleColor.DarkGray; Console.Write(card); Console.ForegroundColor = prev; }
// Draws a big card stack is true if card is not single but top of a stack private void BigCard(Card card, bool stack) { Console.ForegroundColor = cardColor; if (stack) { Console.Write("\n┌───╖\n│"); WriteCard(card); Console.WriteLine("║\n│ ║\n╘═══╝", card); } else { Console.Write("\n┌───┐\n│"); WriteCard(card); Console.WriteLine("│\n│ │\n└───┘"); } Console.ResetColor(); }
private void Turn(Player Player, Hand Hand, bool Master= false) { //Console.WriteLine (Player); Card C = Player.MakePlay(_DownCard, Hand); if (C == null) { Hand.Draw(_Deck); CheckDeck(); return; } bool Valid = (Master ? true : _Master.ValidatePlay(_DownCard, C, Player)); foreach (Player L in _Learners) L.VerifyPlay(_DownCard, C, Valid); if (Valid) { Hand.Play(C, _Return); _DownCard = C; } else { Hand.Draw(_Deck); CheckDeck(); } }