Ejemplo n.º 1
0
        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);
                    }
                }
            }
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        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_);
        }
Ejemplo n.º 5
0
        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);
        }
Ejemplo n.º 6
0
        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);
        }
Ejemplo n.º 7
0
        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);
        }
Ejemplo n.º 8
0
        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);
        }
Ejemplo n.º 9
0
        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);
        }
Ejemplo n.º 10
0
        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;
            }
        }
Ejemplo n.º 11
0
        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;
                    }
                }
            }
        }
Ejemplo n.º 12
0
        //  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);
        }