protected override DeckLabel chooseClaim() { DeckLabel cardLabels = form.getmyDeck(); Deck selected_cards = cardLabels.GetSelectedCards(); DeckLabel last_claim = form.getLastClaimDeck(); Card previusclaimcard = new Card(last_claim.Deck.GetCounts()); List <List <Card> > redused_selected_list = selected_cards.ToReducedList(); if (redused_selected_list.Count == 1 && previusclaimcard.Increase() == redused_selected_list[0][0]) { return(form.gethighClaimOptionDeck()); } if (redused_selected_list.Count == 1 && previusclaimcard.Decrease() == redused_selected_list[0][0]) { return(form.getlowClaimOptionDeck()); } else { if (random.NextDouble() >= 0.5) { return(form.gethighClaimOptionDeck()); } return(form.getlowClaimOptionDeck()); } }
protected override void chooseRecord(DeckLabel claim) { string full_file_path = record_dir + claim.m_deck.ToRecordString(); form.claim_record = new NAudio.Wave.WaveFileReader(full_file_path); return; }
protected bool haveLeagleMove() { List <CardLabel> cardLabels = form.getmyDeck().m_cardLabels; DeckLabel last_claim = form.getLastClaimDeck(); Card previusclaimcard = new Card(last_claim.Deck.GetCounts()); foreach (CardLabel c_lable in cardLabels) { if (previusclaimcard.Decrease() == c_lable.Card || previusclaimcard.Increase() == c_lable.Card) { return(true); } } return(false); }
protected override int chooseCard() { int cards_chosen = 0; List <CardLabel> cardLabels = form.getmyDeck().m_cardLabels; DeckLabel last_claim = form.getLastClaimDeck(); Card previusclaimcard = new Card(last_claim.Deck.GetCounts()); foreach (CardLabel c_lable in cardLabels) { if (previusclaimcard.Decrease() == c_lable.Card) { c_lable.Selected = true; cards_chosen++; } } if (cards_chosen > 0) { return(cards_chosen); } foreach (CardLabel c_lable in cardLabels) { if (previusclaimcard.Increase() == c_lable.Card) { c_lable.Selected = true; cards_chosen++; } } if (cards_chosen > 0) { return(cards_chosen); } cards_chosen = 1; for (int i = 0; i < cards_chosen; i++) { int index = random.Next(cardLabels.Count); cardLabels[index].Selected = true; } return(cards_chosen); }
private void play_move(DeckLabel claim) { if (shouldWait()) { return; } Deck c = new Deck(claim.m_deck); Deck act = new Deck(); foreach (CardLabel c_lable in form.getmyDeck().m_cardLabels) { if (c_lable.Selected) { act.Add(new Card(c_lable.Card)); } } session.Add(new TurnHistory(c, act, form.claim_record, true)); claim.RaiseSelectionChanged(); }
private void makeMove() { switch (decise_move()) { case MoveType.PlayMove: chooseCard(); DeckLabel claim = chooseClaim(); chooseRecord(claim); play_move(claim); break; case MoveType.TakeCard: form.TakeCardButton_Click(this, null); break; case MoveType.CallCheat: form.CallCheatButton_Click(this, null); break; } first_move = false; board_valid = false; claim_valid = false; }
protected abstract void chooseRecord(DeckLabel claim);