From 0f96a08cbdb101d676ddb80c27ac4d97fedfd8ac Mon Sep 17 00:00:00 2001 From: emkael Date: Mon, 23 May 2016 16:01:49 +0200 Subject: * saving double-dummy table back to PBN file --- PBNBoard.cs | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ Program.cs | 4 ++++ 2 files changed, 53 insertions(+) diff --git a/PBNBoard.cs b/PBNBoard.cs index c9ae180..3c3030f 100644 --- a/PBNBoard.cs +++ b/PBNBoard.cs @@ -266,5 +266,54 @@ namespace BCDD } } + public void WriteOptimumResultTable(int[,] ddTable) + { + this.Fields.Add(new PBNField("OptimumResultTable", @"Declarer;Denomination\2R;Result\2R")); + for (int i = 0; i < 4; i++) + { + for (int j = 0; j < 5; j++) + { + this.Fields.Add(new PBNField(String.Format("{0} {1}{2} {3}", BCalcWrapper.PLAYERS[i], BCalcWrapper.DENOMINATIONS[j], (BCalcWrapper.DENOMINATIONS[j] == 'N') ? "T" : "", ddTable[i, j]))); + } + } + } + + public void SaveDDTable(int[,] ddTable) + { + if (this.hasOptimumResultTable == null) + { + try + { + List optimumResultTable = this.ValidateOptimumResultTable(this.GetOptimumResultTable()); + this.hasOptimumResultTable = true; + } + catch (FieldNotFoundException) + { + this.hasOptimumResultTable = false; + } + } + if (this.hasOptimumResultTable == false) + { + this.DeleteOptimumResultTable(); + this.WriteOptimumResultTable(ddTable); + } + if (this.hasAbility == null) + { + try + { + MatchCollection ability = this.ValidateAbility(this.GetAbility()); + this.hasAbility = true; + } + catch (FieldNotFoundException) + { + this.hasAbility = false; + } + } + if (this.hasAbility == false) + { + this.DeleteAbility(); + this.WriteAbility(ddTable); + } + } } } diff --git a/Program.cs b/Program.cs index 814edce..3373004 100644 --- a/Program.cs +++ b/Program.cs @@ -37,6 +37,9 @@ namespace BCDD { Console.WriteLine("Board " + boardNo); DDTable.PrintTable(ddTable); + Console.WriteLine(); + board.SaveDDTable(ddTable); + file.WriteBoard(board); } else { @@ -49,6 +52,7 @@ namespace BCDD Console.WriteLine(e.StackTrace); } } + file.Save(); } Console.WriteLine("Press any key to continue..."); Console.ReadLine(); -- cgit v1.2.3