Beispiel #1
0
        /// <summary>
        /// Siirretään haluttu nappula haluttuun paikkaan, jos mahdollista
        /// </summary>
        /// <param name="valittuPaikka">paikka jonne siirretään</param>
        /// <param name="valittuNappula">nappula joka siirretään</param>
        /// <returns>true jos siirto onnistui, false jos ei onnistunut tai jos peli päättyi</returns>
        protected bool siirra(Paikka valittuPaikka, Nappula valittuNappula)
        {
            Grid   control    = (Grid)valittuNappula.Parent;
            Paikka alkuPaikka = valittuNappula.annaPaikka();

            control.Children.Remove(valittuNappula); //Poistetaan nappula vanhalta paikaltaan
            alkuPaikka.OnkoTyhja = true;
            if (!valittuPaikka.OnkoTyhja)            //Jos valitussa paikassa on jo nappula niin se poistetaan
            {
                valittuPaikka.annaNappula().Syoty = true;
                valittuPaikka.poistaNappula();
            }
            valittuPaikka.lisaaNappula(valittuNappula);
            alkuPaikka.poistaNappula();;
            if (!onkoJaljella()) //jos kaikki vastustajan nappulat syöty
            {
                Paaty();
                return(false);
            }
            if (onkoPaadyssa(valittuNappula)) //jos nappula saapui pelilaudan päätyyn
            {
                Paaty();
                return(false); // Jos voittoehdot täyttyvät
            }
            return(true);
        }
Beispiel #2
0
        /// <summary>
        /// Selvittää onko tehtävä siirto sääntöjen mukainen
        /// </summary>
        /// <param name="mista">mistä siirretään</param>
        /// <param name="mihin">minne siirrettään</param>
        /// <returns>true jos saa siirtää, false jos ei saa siirtää</returns>
        public virtual bool onkoLaillinen(Nappula valittuNappula, Paikka mihin)
        {
            Paikka mista = valittuNappula.annaPaikka();

            string alku  = mista.Name;
            string loppu = mihin.Name;

            kirjainNro1 = char.ToUpper(alku[0]) - 65; // 'A' on 65 joten siksi -65; ei varsinaisesti väliä
            kirjainNro2 = char.ToUpper(loppu[0]) - 65;

            numero1 = Int32.Parse(alku.Substring(1, alku.Length - 1));
            numero2 = Int32.Parse(loppu.Substring(1, loppu.Length - 1));

            return(true);
        }