private void MakeBoards() { Vu_ContractList_Closed = new List <InfoBoard>(); Vu_ContractList_Open = new List <InfoBoard>(); for (int i = 0; i < Ustawienia.ilosc_rozdan * 2; i++) { if (scores_[i] != "P") { MakeBoard(scores_[i], i); } else { if (i % 2 == 0) { InfoBoard pasy = new InfoBoard(); pasy.level = 0; pasy.suit = " "; pasy.declarer = " "; pasy.score = 0; Vu_ContractList_Open.Add(pasy); } else { InfoBoard pasy = new InfoBoard(); pasy.level = 0; pasy.suit = " "; pasy.declarer = " "; pasy.score = 0; Vu_ContractList_Closed.Add(pasy); } } } }
Table MakeScoresGame(Table table, int i, InfoBoard table1) { Row row = table.AddRow(); Paragraph p = row.Cells[0].AddParagraph(); p.AddFormattedText((i + 1).ToString()); p = row.Cells[1].AddParagraph(); p = WriteContract(p, table1); row.Cells[2].AddParagraph(table1.declarer); p = row.Cells[3].AddParagraph(); p = WriteLead(p, table1); p = row.Cells[4].AddParagraph(); if (table1.lew != null) { WriteTricks(p, table1.lew); } Paragraph score = row.Cells[5].AddParagraph(); WriteScore(score, table1.score); p = row.Cells[6].AddParagraph(); return(table); }
private void WriteLineKontrakt(InfoBoard board, InfoBoard board2) { Section section = document.LastSection; Paragraph p = section.AddParagraph(); p.Format.Font = font_normal.Clone(); p.AddLineBreak(); p.AddFormattedText("Kontrakt "); p = WriteContract(p, board); p.AddFormattedText(" "); p = WriteTricks(p, board.lew); p.AddFormattedText(", "); p = WriteLead(p, board); p.AddSpace(6); p = WriteScore(p, board.score); p.AddSpace(29); p.AddFormattedText("Kontrakt "); p = WriteContract(p, board2); p.AddFormattedText(" "); p = WriteTricks(p, board2.lew); p.AddFormattedText(", "); p = WriteLead(p, board2); p.AddSpace(6); p = WriteScore(p, board2.score); }
public static int oblicz_podstawe_zapisu(InfoBoard node) { int podstawa_ = 0; string suit = node.suit; int level = node.level; if (suit == "C" || suit == "D") { podstawa_ = 20 * level; } if (suit == "H" || suit == "S") { podstawa_ = 30 * level; } if (suit == "N") { podstawa_ = 30 * level + 10; } if (node.kontra) { podstawa_ = 2 * podstawa_; } if (node.rekontra) { podstawa_ = 2 * podstawa_; } return(podstawa_); }
void MakeTable11() { Table table = new Table(); for (int i = 0; i < 14; i++) { table.AddColumn(Unit.FromCentimeter(wyniki_szerokosc_kolum[i])); } InfoBoard node = new InfoBoard(); node.score = 0; node.suit = "H"; node.declarer = "N"; game.ContractList.Add(node); int[] imp = wyliczimpy(game.ContractList, vugraph.Vu_ContractList_Open); string s1 = "NS : " + game.nazwiska_[2] + " - " + game.nazwiska_[0]; string s2 = "EW : " + game.nazwiska_[3] + " - " + game.nazwiska_[1]; string s3 = "NS : " + vugraph.nazwiska_[2] + " - " + vugraph.nazwiska_[0]; string s4 = "EW : " + vugraph.nazwiska_[3] + " - " + vugraph.nazwiska_[1]; string napis1 = "Pokój otwarty"; MakeTableRow1(table, s1, s2, s3, s4); string inicjaly1 = game.nazwiska_[2][0] + "/" + game.nazwiska_[0][0] + " + "; inicjaly1 += vugraph.nazwiska_[3][0] + "/" + vugraph.nazwiska_[1][0]; string inicjaly2 = game.nazwiska_[3][0] + "/" + game.nazwiska_[1][0] + " + "; inicjaly2 += vugraph.nazwiska_[2][0] + "/" + vugraph.nazwiska_[0][0]; MakeTableRow2(table, napis1, inicjaly1, inicjaly2, "Mecz treningowy"); MakeTableRow3(table); for (int i = 0; i < Ustawienia.ilosc_rozdan; i++) { table = MakeScoresGame(table, i, game.ContractList[i], vugraph.Vu_ContractList_Open[i]); AddImp(ref table, imp, i); } TableProperties(ref table); // table.SetEdge(0, 2, 14, Ustawienia.ilosc_rozdan+1, Edge.Box, BorderStyle.Single, 1.0, Colors.Black); string team1 = game.nazwiska_[2] + " - " + game.nazwiska_[0] + " - " + vugraph.nazwiska_[3] + " - " + vugraph.nazwiska_[1]; string team2 = game.nazwiska_[3] + " - " + game.nazwiska_[1] + " - " + vugraph.nazwiska_[2] + " - " + vugraph.nazwiska_[0]; int nr_meczu = 1; WstawOstatniaLinie(table, imp); // document.AddSection(); document.LastSection.Add(WriteTableTitle(team1, team2, nr_meczu)); document.LastSection.Add(table); }
Paragraph WriteLead(Paragraph p, InfoBoard board) { if (board.wist != null) { p.AddFormattedText(board.wist[1].ToString()); WriteSuit(p, board.wist[0].ToString().ToUpper()); } return(p); }
private void WriteLineKontrakt(InfoBoard board, InfoBoard board2, InfoBoard board3) { Section section = document.LastSection; Paragraph p = section.AddParagraph(); p.Format.Font = font_normal.Clone(); p.AddLineBreak(); p.AddFormattedText("Kontrakt "); p = WriteContract(p, board); p.AddFormattedText(" "); p = WriteTricks(p, board.lew); p.AddFormattedText(", "); p = WriteLead(p, board); p.AddSpace(3); p = WriteScore(p, board.score); p.AddSpace(12); p.AddFormattedText("Kontrakt "); p = WriteContract(p, board2); p.AddFormattedText(" "); p = WriteTricks(p, board2.lew); p.AddFormattedText(", "); if (Ustawienia.linoc) { p = WriteLead(p, board2); } else { p = WriteLead(p, board3); } p.AddSpace(3); p = WriteScore(p, board2.score); p.AddSpace(12); p.AddFormattedText("Kontrakt "); p = WriteContract(p, board3); p.AddFormattedText(" "); p = WriteTricks(p, board3.lew); p.AddFormattedText(", "); if (Ustawienia.linoc) { p = WriteLead(p, board3); } else { p = WriteLead(p, board2); } p.AddSpace(3); p = WriteScore(p, board3.score); }
private void MakeBoard(string ciagwynikow, int j) { InfoBoard node = new InfoBoard(); int i = 0; node.nr = j / 2 + 1; node.level = int.Parse(ciagwynikow[i].ToString()); i++; node.suit = ciagwynikow[i].ToString(); i++; node.declarer = ciagwynikow[i].ToString(); i++; string elem = ciagwynikow[i].ToString(); if (elem == "x") { node.kontra = true; i++; if (ciagwynikow[i].ToString() == "x") { node.rekontra = true; i++; } } if (ciagwynikow[i].ToString() != "=") { node.nadrobek = int.Parse(ciagwynikow[i].ToString() + ciagwynikow[i + 1].ToString()); i += 3; node.lew = node.nadrobek.ToString(); } else { i += 2; node.lew = "="; } if (node.nadrobek < 0) { node.realizacja = false; } node.score = InfoBridge.oblicz_zapis(node); ContractList.Add(node); }
Paragraph WriteContract(Paragraph p, InfoBoard board) { if (board.level > 0) { p.AddFormattedText(board.level.ToString()); WriteSuit(p, board.suit); if (board.kontra) { p.AddFormattedText("x"); } if (board.rekontra) { p.AddFormattedText("x"); } } else { p.AddFormattedText("4 pasy"); } return(p); }
private void MakeBoard(string ciagwynikow, int j) { InfoBoard node = new InfoBoard(); int i = 0; node.nr = j / 2 + 1; node.level = int.Parse(ciagwynikow[i].ToString()); i++; node.suit = ciagwynikow[i].ToString(); i++; node.declarer = ciagwynikow[i].ToString(); i++; string elem = ciagwynikow[i].ToString(); if (elem == "x") { node.kontra = true; i++; if (ciagwynikow[i].ToString() == "x") { node.rekontra = true; i++; } } if (ciagwynikow[i].ToString() != "=") { node.nadrobek = int.Parse(ciagwynikow[i].ToString() + ciagwynikow[i + 1].ToString()); i += 3; node.lew = node.nadrobek.ToString(); } else { i += 2; node.lew = "="; } if (node.nadrobek < 0) { node.realizacja = false; } node.wist = wisty[j]; node.score = InfoBridge.oblicz_zapis(node); if (j % 2 == 0) { //kontrolka_vu2.Add(node); Vu_ContractList_Open.Add(node); // vu2_zapisy[(j - 1) / 2 + 1] = node.score; } else { //kontrola_vu1.Add(node); Vu_ContractList_Closed.Add(node); //vu1_zapisy[(j - 1) / 2 + 1] = node.score; } }
public void WczytajVuKontrakty(string[] input) { Vu_ContractList_Closed = new List <InfoBoard>(); Vu_ContractList_Open = new List <InfoBoard>(); for (int j = 0; j < input.Count(); j++) { InfoBoard node = new InfoBoard(); int i = 0; string ciagwynikow = input[j]; if (ciagwynikow == "P") { node.declarer = " "; node.level = 0; node.lew = "-"; node.score = 0; } else { node.nr = j / 2 + 1; node.level = int.Parse(ciagwynikow[i].ToString()); i++; node.suit = ciagwynikow[i].ToString(); i++; node.declarer = ciagwynikow[i].ToString(); i++; string elem = ciagwynikow[i].ToString(); if (elem == "x") { node.kontra = true; i++; if (ciagwynikow[i].ToString() == "x") { node.rekontra = true; i++; } } if (ciagwynikow[i].ToString() != "=") { node.nadrobek = int.Parse(ciagwynikow[i].ToString() + ciagwynikow[i + 1].ToString()); i += 3; node.lew = node.nadrobek.ToString(); } else { i += 2; node.lew = "="; } if (node.nadrobek < 0) { node.realizacja = false; } node.score = InfoBridge.oblicz_zapis(node); if (j % 2 == 0) { //kontrolka_vu2.Add(node); Vu_ContractList_Open.Add(node); // vu2_zapisy[(j - 1) / 2 + 1] = node.score; } else { //kontrola_vu1.Add(node); Vu_ContractList_Closed.Add(node); //vu1_zapisy[(j - 1) / 2 + 1] = node.score; } } } }
// public static int[] NS_partia = { 1000, 0, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0 }; // public static int[] WE_partia = { 1000, 0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1 }; public static int oblicz_zapis(InfoBoard node) { int wynik = 0; int podstawa = 0; bool partia; // ustalam zalozenia if (node.declarer == "N" || node.declarer == "S") { node.NS = true; } else { node.WE = true; } if (node.NS) { partia = (InfoBridge.NS_partia[node.nr] > 0); } else { partia = (InfoBridge.WE_partia[node.nr] > 0); } if (node.realizacja) { //obliczam podstawę string suit = node.suit; int level = node.level; if (suit == "C" || suit == "D") { podstawa = 20 * level; } if (suit == "H" || suit == "S") { podstawa = 30 * level; } if (suit == "N") { podstawa = 30 * level + 10; } if (node.kontra) { podstawa = 2 * podstawa; } if (node.rekontra) { podstawa = 2 * podstawa; } //sprawdzam premie if (podstawa < 100) { wynik = podstawa + 50; } else { if (partia) { wynik = podstawa + InfoBridge.pokoncowka; } else { wynik = podstawa + InfoBridge.przedkoncowka; } } //premia za szlemika if (level == 6 && partia) { wynik += InfoBridge.poszlemik; } if (level == 6 && (!partia)) { wynik += InfoBridge.przedszlemik; } if (level == 7 && partia) { wynik += InfoBridge.poszlem; } if (level == 7 && (!partia)) { wynik += InfoBridge.przedszlem; } if (node.kontra) { wynik += 50; } if (node.rekontra) { wynik += 100; } //premie za nadrobki if (!node.kontra) { if (suit == "C" || suit == "D") { wynik += 20 * node.nadrobek; } else { wynik += 30 * node.nadrobek; } } else { if (partia && (!node.rekontra)) { wynik += node.nadrobek * 200; } if ((!partia) && (!node.rekontra)) { wynik += node.nadrobek * 100; } if (partia && (node.rekontra)) { wynik += node.nadrobek * 400; } if ((!partia) && (node.rekontra)) { wynik += node.nadrobek * 200; } } if (node.WE) { wynik = -wynik; } } else { int niedorobki = Math.Abs(node.nadrobek); if (partia && node.kontra) { wynik = 200 + (niedorobki - 1) * 300; if (node.rekontra) { wynik = 2 * wynik; } } if (!partia && node.kontra) { wynik = 100 + (niedorobki - 1) * 200; if (niedorobki > 3) { wynik += (niedorobki - 3) * 100; } if (node.rekontra) { wynik = 2 * wynik; } } if (!node.kontra) { wynik = 50 * niedorobki; if (partia) { wynik = 2 * wynik; } } if (node.NS) { wynik = -wynik; } } return(wynik); }