Example #1
0
        public Spelare(ArgumentFörSpelare parametrar)
        {
            this.EgetTecken  = parametrar.spelarTecken;
            this.Teckenvärde = (int)parametrar.spelarTecken;
            this.Teckenfärg  = parametrar.spelarFärg;
            this.EgenTyp     = parametrar.typ;
            tid = new DateTime().AddMinutes(parametrar.starttid);

            if (parametrar.typ == Typ.MonteCarlo)
            {
                // Parametrarna används när två drag har lika bra statistik
                // INTE när motorn spelar mot sig själv
                this.användAI = new MonteCarloAI((int)this.EgetTecken,
                                                 motståndarminus: 0.1,
                                                 sekundärhotKonstant: 0.01,
                                                 motståndarhotKonstant: 0.001,
                                                 totalaHotKonstant: 0.0001,
                                                 motståndarsekundärKonstant: 0.00001,
                                                 motståndartotalKonstant: 0.000001);
            }
            else if (parametrar.typ == Typ.Originalgangster)
            {
                this.användAI = new OriginalgangsterAI((int)this.EgetTecken,
                                                       0,
                                                       motståndarminus: 0.1,
                                                       sekundärhotKonstant: 0.01,
                                                       motståndarhotKonstant: 0.01);
            }
        }
Example #2
0
        public Spelare(ArgumentFörSpelare parametrar)
        {
            this.EgetTecken = parametrar.spelarTecken;
                  this.Teckenvärde = (int)parametrar.spelarTecken;
                  this.Teckenfärg = parametrar.spelarFärg;
                  this.EgenTyp = parametrar.typ;
                  tid = new DateTime().AddMinutes(parametrar.starttid);

                  if (parametrar.typ == Typ.MonteCarlo) {
                        // Parametrarna används när två drag har lika bra statistik
                        // INTE när motorn spelar mot sig själv
                        this.användAI = new MonteCarloAI((int)this.EgetTecken,
                                                            motståndarminus: 0.1,
                                                            sekundärhotKonstant: 0.01,
                                                            motståndarhotKonstant: 0.001,
                                                            totalaHotKonstant: 0.0001,
                                                            motståndarsekundärKonstant: 0.00001,
                                                            motståndartotalKonstant: 0.000001);
                  } else if (parametrar.typ == Typ.Originalgangster) {
                        this.användAI = new OriginalgangsterAI((int)this.EgetTecken,
                                                                0,
                                                                motståndarminus: 0.1,
                                                                sekundärhotKonstant: 0.01,
                                                                motståndarhotKonstant: 0.01);
                  }
        }
Example #3
0
        private ArgumentFörSpelare spelareTvåsArgument;                  //                 spelareTvås

        public Form1()
        {
            InitializeComponent();

            #region Fixar font storleken
            Graphics g = CreateGraphics();

            for (int storleksIndex = 8; storleksIndex < 256; storleksIndex++)
            {
                SizeF storleken = g.MeasureString("X", new Font(FontFamily.GenericSerif, storleksIndex));
                if (storleken.Height >= fältstorlek)
                {
                    teckenstorlek = storleksIndex + 4;
                    break;
                }
            }
            #endregion

            spelplansstorlekY += menuStrip1.Size.Height;

            // Sätter fönsterstorleken
            this.ClientSize = new System.Drawing.Size(spelplansstorlekX + 400, spelplansstorlekY);

            // Initialiserar startknappen
            Button startKnapp = new Button();
            startKnapp.Text     = "Nytt parti";
            startKnapp.Size     = new Size(200, 50);
            startKnapp.Location = new Point(spelplansstorlekX + 100, spelplansstorlekY / 2 + menuStrip1.Height + 100);
            this.Controls.Add(startKnapp);
            startKnapp.Click += new EventHandler(startKnapp_Click);

            // Initialiserar ångraknappen
            Button ångraKnapp = new Button();
            ångraKnapp.Text     = "Ångra drag";
            ångraKnapp.Size     = new Size(200, 50);
            ångraKnapp.Location = new Point(spelplansstorlekX + 100, spelplansstorlekY / 2 + menuStrip1.Height + 175);
            this.Controls.Add(ångraKnapp);
            ångraKnapp.Click += ångraKnapp_Click;

            // Sätter positionerna för rektanglarna där tiderna skrivs
            spelareEttsKlockposition = new Rectangle(spelplansstorlekX + 50, menuStrip1.Height + 30, 300, 75);
            spelareTvåsKlockposition = new Rectangle(spelplansstorlekX + 50, menuStrip1.Height + 200, 300, 75);

            spelareEttsArgument = new ArgumentFörSpelare(Spelare.Tecken.Cirkel, Color.Black, 100, Spelare.Typ.Originalgangster);
            spelareTvåsArgument = new ArgumentFörSpelare(Spelare.Tecken.Kryss, Color.Black, 100, Spelare.Typ.Människa);
            spelareEtt          = new Spelare(spelareEttsArgument);
            spelareTvå          = new Spelare(spelareTvåsArgument);
            spelarePåDrag       = spelareEtt;
        }
Example #4
0
        private ArgumentFörSpelare spelareTvåsArgument; //                 spelareTvås

        #endregion Fields

        #region Constructors

        public Form1()
        {
            InitializeComponent();

                  #region Fixar font storleken
                  Graphics g = CreateGraphics();

                  for (int storleksIndex = 8; storleksIndex < 256; storleksIndex++) {
                        SizeF storleken = g.MeasureString("X", new Font(FontFamily.GenericSerif, storleksIndex));
                        if (storleken.Height >= fältstorlek) {
                              teckenstorlek = storleksIndex + 4;
                              break;
                        }
                  }
                  #endregion

                  spelplansstorlekY += menuStrip1.Size.Height;

                  // Sätter fönsterstorleken
                  this.ClientSize = new System.Drawing.Size(spelplansstorlekX + 400, spelplansstorlekY);

                  // Initialiserar startknappen
                  Button startKnapp = new Button();
                  startKnapp.Text = "Nytt parti";
                  startKnapp.Size = new Size(200, 50);
                  startKnapp.Location = new Point(spelplansstorlekX + 100, spelplansstorlekY / 2 + menuStrip1.Height + 100);
                  this.Controls.Add(startKnapp);
                  startKnapp.Click += new EventHandler(startKnapp_Click);

                  // Initialiserar ångraknappen
                  Button ångraKnapp = new Button();
                  ångraKnapp.Text = "Ångra drag";
                  ångraKnapp.Size = new Size(200, 50);
                  ångraKnapp.Location = new Point(spelplansstorlekX + 100, spelplansstorlekY / 2 + menuStrip1.Height + 175);
                  this.Controls.Add(ångraKnapp);
                  ångraKnapp.Click += ångraKnapp_Click;

                  // Sätter positionerna för rektanglarna där tiderna skrivs
                  spelareEttsKlockposition = new Rectangle(spelplansstorlekX + 50, menuStrip1.Height + 30, 300, 75);
                  spelareTvåsKlockposition = new Rectangle(spelplansstorlekX + 50, menuStrip1.Height + 200, 300, 75);

                  spelareEttsArgument = new ArgumentFörSpelare(Spelare.Tecken.Cirkel, Color.Black, 100, Spelare.Typ.Originalgangster);
                  spelareTvåsArgument = new ArgumentFörSpelare(Spelare.Tecken.Kryss, Color.Black, 100, Spelare.Typ.Människa);
                  spelareEtt = new Spelare(spelareEttsArgument);
                  spelareTvå = new Spelare(spelareTvåsArgument);
                  spelarePåDrag = spelareEtt;
        }