// Sets the correct row for the scoreTable and the 5X button's textblock. static Row SetFiveXRow() { var _scores = scoreTable [( int )PlayerUp]; var _row = Row.Unselected; // GameScoring1 and MainWindow both use the FiveX1 row to represent the Five of a kind block; for scores available or button clicked. // ie: var _item = GameScoring1.GetResultsItem ( Row.FiveX1 ); var _item = GameScoring1.GetResultsItem(RowSelected); // Get this players scores. // Scratching progresses from FiveX4 to FiveX1. if (_item.Value == 0) { for (int i = ( int )Row.FiveX4; i >= ( int )Row.FiveX1; i--) { if (_scores [i] == null) { _row = ( Row )i; break; } } } else // Scoring a 5 of a kind progresses from FiveX1 to FiveX4. { for (int i = ( int )Row.FiveX1; i <= ( int )Row.FiveX4; i++) { if (_scores [i] == null) { _row = ( Row )i; break; } } } return(_row); }
/// <summary> /// Updates the score table, /// Returns all entries that have changed for the Vis /// </summary> //public static void RecordScore ( ResultsItem item ) //{ // // Get this players scores. // int? [] scores = scoreTable [ ( int ) PlayerUp ]; // // Used to set the GameModel ResultsList property. // var _resultsList = new List<ResultsItem> (); // //SetFiveXRow ( item ); // if ( item.Row == Row.FiveX1 ) // { // if ( item.Value == 0 ) // { // for ( int i = ( int ) Row.FiveX4; i >= ( int ) Row.FiveX1; i-- ) // { // if ( scores [ i ] == null ) // { // item.Row = ( Row ) i; // break; // } // } // } // else // { // for ( int i = ( int ) Row.FiveX1; i <= ( int ) Row.FiveX4; i++ ) // { // if ( scores [ i ] == null ) // { // item.Row = ( Row ) i; // break; // } // } // } // } // PlayerScored = PlayerUp; // // Update the player chosen entry. // AddToScores ( item.Row, item.Value, ref scores, ref resultsList ); // UpdatePostings ( item.Row, item.Value, ref scores, ref resultsList ); // scoreTable [ ( int ) PlayerUp ] = scores; // ResultsList = resultsList; //} public static void RecordScore() { var _row = RowSelected; int? [] _scores = scoreTable [( int )PlayerUp]; var _scoresUpdate = new List <ResultsItem> (); var _scoresItem = GameScoring1.GetResultsItem(_row); var _postItem = new ResultsItem(); //var _scoresItem = new ResultsItem (); PlayerScored = PlayerUp; // GameScoring1 and MainWindow both use the FiveX1 row to represent the Five of a kind block; for scores available or button clicked. if (_row == Row.FiveX1) { // Add the five of a kind score. _scoresItem.Row = SetFiveXRow(); _scoresUpdate.Add(_scoresItem); _scores [( int )_scoresItem.Row] = _scoresItem.Value; //_scores [ ( int ) Row.ScoreFiveX ] = ( _scores [ ( int ) Row.ScoreFiveX ] != null ) ? // _scores [ ( int ) Row.ScoreFiveX ] + _scoresItem.Value : _scoresItem.Value; // Add the five of a kind total. _scores [( int )Row.ScoreFiveX] = (_scores [( int )Row.ScoreFiveX] ?? 0) + _scoresItem.Value; _postItem.Row = Row.ScoreFiveX; _postItem.Value = ( int )_scores [( int )Row.ScoreFiveX]; _scoresUpdate.Add(_postItem); } else { _scoresUpdate.Add(_scoresItem); _scores [( int )_scoresItem.Row] = _scoresItem.Value; } if (( int )_row <= ( int )Row.Sixes) { _scores [( int )Row.ScoreUpper] = (_scores [( int )Row.ScoreUpper] ?? 0) + _scoresItem.Value; if ((_scores [(int)Row.ScoreUpper] > 63) && (_scores [(int)Row.Score63] == null)) { _scores [( int )Row.Score63] = GameScoring1.Over63Bonus; _postItem = new ResultsItem() { Row = Row.Score63, Value = GameScoring1.Over63Bonus, }; _scoresUpdate.Add(_postItem); _scores [( int )Row.ScoreUpper] += GameScoring1.Over63Bonus; } _postItem = new ResultsItem() { Row = Row.ScoreUpper, Value = (int)_scores [( int )Row.ScoreUpper], }; _scoresUpdate.Add(_postItem); } else { // Update LowerTotal _scores [( int )Row.ScoreLower] = (_scores [( int )Row.ScoreLower] ?? 0) + _scoresItem.Value; _postItem = new ResultsItem() { Row = Row.ScoreLower, Value = ( int )_scores [( int )Row.ScoreLower], }; _scoresUpdate.Add(_postItem); } _scores [( int )Row.ScoreTotal] = (_scores [( int )Row.ScoreTotal] ?? 0) + _scoresItem.Value; _postItem = new ResultsItem() { Row = Row.ScoreTotal, Value = ( int )_scores [( int )Row.ScoreTotal], }; _scoresUpdate.Add(_postItem); ResultsList = _scoresUpdate; }