Пример #1
0
        public BetTreeNodeModel AddChild(BetTreeModel tree, BetTreeNodeModel parent)
        {
            HoldemHandRound round = parent.Snapshot.NextPlayer == null ?
                (HoldemHandRound)((int)parent.Snapshot.Round) + 1 : parent.Snapshot.Round;
            int? player = parent.Snapshot.NextPlayer == null ?
                parent.Snapshot.GetNextRoundStart() : parent.Snapshot.NextPlayer;

            BetTreeNodeModel model;
            switch (round)
            {
                case HoldemHandRound.PreFlop:
                    model = AddPreflopStandard(parent, round, (int)player);
                    break;
                case HoldemHandRound.Flop:
                case HoldemHandRound.Turn:
                case HoldemHandRound.River:
                    model = AddPostflopStandard(parent, round, (int)player);
                    break;
                default:
                    model = AddShowdownStandard(parent);
                    break;
            }

            parent.AddChild(model);
            model.AddNode += tree.OnAddNode;
            model.EditNode += tree.OnEditNode;
            model.DeleteNode += tree.OnDeleteNode;
            model.ShowWizard += tree.OnShowWizard;
            return model;
        }
Пример #2
0
        protected void AddEndPoint(BetTreeNodeModel parent)
        {
            BetTreeNodeDisplay display = null;
            ObservableCollection<BetTreeDataNodeMeta> metaList = new ObservableCollection<BetTreeDataNodeMeta>();
            if (parent.Snapshot.NumPlayersInHand <= 1)
            {
                metaList.Add(new BetTreeDataNodeMeta(RESULT_NODE_META, new ResultsModel(parent.Snapshot)));
                display = _nodeStyles[typeof(ResultsModel)];
            }
            else
            {
                metaList.Add(new BetTreeDataNodeMeta("Showdown", new ShowdownModel(parent.Snapshot)));
                display = _nodeStyles[typeof(ShowdownModel)];
            }

            BetTreeNodeModel model = new BetTreeNodeModel(parent.Tree, display, this._resultsStyle, parent.Snapshot, parent, true);

            model.AllowedNodeTypes = metaList;
            model.Meta = metaList.First().Name;

            parent.AddChild(model);
        }