Exemple #1
0
        public void Add(RBNLine line)
        {
            if (line == null)
            {
                return;
            }

            RBNLineType type = line.GetRBNLineType();

            switch (type)
            {
            case RBNLineType.TitleAndAuthor:
                RBNTitleAndAuthor ta = (RBNTitleAndAuthor)line;
                Author = ta.Author;
                Title  = ta.Title;
                return;

            default:
                Lines.Add(line);
                break;
            }
        }
Exemple #2
0
        public static RBNLine GetRBNLine(string rbn)
        {
            if (rbn == null || rbn.Length < 2)
            {
                return(null);
            }
            char        firstChar = rbn[0];
            string      value     = rbn.Substring(2);
            RBNLineType type      = RBNLineTypeMapper.GetRBNLineType(firstChar);
            RBNLine     rbnLine   = null;

            switch (type)
            {
            case RBNLineType.TitleAndAuthor:
                rbnLine = new RBNTitleAndAuthor();
                break;

            case RBNLineType.Hands:
                rbnLine = new RBNHands();
                break;

            case RBNLineType.Text:
                value   = rbn;
                rbnLine = new RBNText();
                break;

            case RBNLineType.Pause:
                rbnLine = new RBNPause();
                break;

            case RBNLineType.ContractAndDeclarer:
                rbnLine = new RBNContractAndDeclarer();
                break;

            case RBNLineType.Auction:
                rbnLine = new RBNAuction();
                break;

            case RBNLineType.BidExplanation:
                rbnLine = new RBNBidExplanation();
                break;

            default:
                break;

                /* TODO:
                 * case DateAndTime:
                 * case Location:
                 * case EventOrMainHeading:
                 * case SessionStageOrSubheading:
                 * case FormOfScoring:
                 * case TeamNamesAndCarryovers:
                 * case NamesOfPlayersAndRoomOrTable:
                 * case BoardNumber:
                 * case PlaySequence:
                 * case ResultTricksWonAndScore:
                 * case InstantAwards:
                 * case MakesAtDoubleDummy:
                 */
            }
            if (rbnLine != null)
            {
                rbnLine.ParseRBNstring(value);
            }
            return(rbnLine);
        }
        public static char GetChar(RBNLineType type)
        {
            switch (type)
            {
            case RBNLineType.TitleAndAuthor:
                return('T');

            case RBNLineType.DateAndTime:
                return('D');

            case RBNLineType.Location:
                return('L');

            case RBNLineType.EventOrMainHeading:
                return('E');

            case RBNLineType.SessionStageOrSubheading:
                return('S');

            case RBNLineType.FormOfScoring:
                return('F');

            case RBNLineType.TeamNamesAndCarryovers:
                return('K');

            case RBNLineType.NamesOfPlayersAndRoomOrTable:
                return('N');

            case RBNLineType.BoardNumber:
                return('B');

            case RBNLineType.Hands:
                return('H');

            case RBNLineType.Auction:
                return('A');

            case RBNLineType.ContractAndDeclarer:
                return('C');

            case RBNLineType.PlaySequence:
                return('P');

            case RBNLineType.ResultTricksWonAndScore:
                return('R');

            case RBNLineType.InstantAwards:
                return('I');

            case RBNLineType.MakesAtDoubleDummy:
                return('M');

            case RBNLineType.Pause:
                return('Q');

            case RBNLineType.BidExplanation:
                return('*');

            default:
                return(' ');
            }
        }