Beispiel #1
0
        public void Init()
        {
            mcts = new Mcts(onkoPelaajanPelimerkkiValkoinen: true);
            solmu = new Solmu(new bool?[15, 15], new Koordinaatit(0, 1), merkinVari: true) { Vierailut = 36 };
            solmu2 = new Solmu(new bool?[15, 15], new Koordinaatit(0, 6), merkinVari: true) { Vierailut = 360 };
            lapsi1 = new Solmu(new bool?[15, 15], new Koordinaatit(5, 2), merkinVari: false) { Vierailut = 3, Pisteet = 0.5f };
            lapsi2 = new Solmu(new bool?[15, 15], new Koordinaatit(9, 3), merkinVari: true) { Vierailut = 10, Pisteet = 0.3f };
            lapsi3 = new Solmu(new bool?[15, 15], new Koordinaatit(4, 4), merkinVari: false) { Vierailut = 20, Pisteet = 0.99f };
            lapsi4 = new Solmu(new bool?[15, 15], new Koordinaatit(12, 5), merkinVari: true) { Vierailut = 9, Pisteet = 0.1f };
            solmu2lapsi1 = new Solmu(new bool?[15, 15], new Koordinaatit(9, 5), merkinVari: true) { Vierailut = 500, Pisteet = 0.1f };

            mcts.PeliLauta.Lauta[0, 1] = true;
            mcts.PeliLauta.Lauta[5, 2] = false;
            mcts.PeliLauta.Lauta[9, 3] = true;
            mcts.PeliLauta.Lauta[4, 4] = false;
            mcts.PeliLauta.Lauta[12, 5] = true;

            mcts.Juuri.Lapsi = solmu;
            mcts.Juuri.LisaaLapselleSisarus(solmu2);

            solmu2.Lapsi = solmu2lapsi1;

            solmu.Lapsi = lapsi1;
            solmu.LisaaLapselleSisarus(lapsi2);
            solmu.LisaaLapselleSisarus(lapsi3);
            solmu.LisaaLapselleSisarus(lapsi4);
        }
Beispiel #2
0
        public void TestSelvitaUusiJuuri_UuttaJuurtaEiLoydy()
        {
            mcts = new Mcts(onkoPelaajanPelimerkkiValkoinen: true);
            mcts.PeliLauta.Lauta[7, 8] = true;
            mcts.Juuri = new Solmu(mcts.PeliLauta.Lauta, 7, 8, merkinVari: true, onkoJuuri: true);

            var pelilautaLapselle = mcts.PeliLauta.KloonaaLauta(mcts.PeliLauta.Lauta);
            pelilautaLapselle[8, 6] = false;
            mcts.Juuri.Lapsi = new Solmu(pelilautaLapselle, new Koordinaatit(8, 6), false);

            var pelilautaLapsenSisarukselle1 = mcts.PeliLauta.KloonaaLauta(mcts.PeliLauta.Lauta);
            pelilautaLapsenSisarukselle1[6, 8] = false;
            mcts.Juuri.Lapsi.Sisarukset.AddFirst(new Solmu(pelilautaLapsenSisarukselle1, new Koordinaatit(6, 8), false));

            var pelilautaLapsenSisarukselle2 = mcts.PeliLauta.KloonaaLauta(mcts.PeliLauta.Lauta);
            pelilautaLapsenSisarukselle2[8, 7] = false;
            mcts.Juuri.Lapsi.Sisarukset.AddFirst(new Solmu(pelilautaLapsenSisarukselle2, new Koordinaatit(8, 7), false));

            var vastustajanLahettamaPelilauta = mcts.PeliLauta.KloonaaLauta(mcts.PeliLauta.Lauta);
            vastustajanLahettamaPelilauta[8, 6] = false;

            mcts.SelvitaUusiJuuri(vastustajanLahettamaPelilauta, new Koordinaatit(8, 8));

            Assert.IsTrue(mcts.Juuri.Juurisolmu);
            Assert.AreEqual(8, mcts.Juuri.X);
            Assert.AreEqual(8, mcts.Juuri.Y);
            Assert.IsNull(mcts.Juuri.Sisarukset);
        }