コード例 #1
0
        static bool GeldigePaardZet(Positie vanPos, Positie naarPos)
        {
            bool isCorrect = false;

            int y = vanPos.rij;
            int x = vanPos.kolom;

            int newY = naarPos.rij;
            int newX = naarPos.kolom;

            if (x == newX - 1 && y == newY - 2)
            {
                isCorrect = true;
            }
            if (x == newX - 1 && y == newY + 2)
            {
                isCorrect = true;
            }
            if (x == newX + 1 && y == newY - 2)
            {
                isCorrect = true;
            }
            if (x == newX + 1 && y == newY + 2)
            {
                isCorrect = true;
            }

            return(isCorrect);
        }
コード例 #2
0
        static void MaakSprong(Schaakstuk[,] schaakbord, Positie vanPos, Positie naarPos)
        {
            if (schaakbord[vanPos.rij, vanPos.kolom] != null)
            {
                Schaakstuk schaakstuk = (Schaakstuk)schaakbord.GetValue(vanPos.rij, vanPos.kolom);
                int        type       = (int)schaakstuk.type;
                int        paard      = (int)SchaakstukType.Paard;

                if (type == paard)
                {
                    if (GeldigePaardZet(vanPos, naarPos))
                    {
                        schaakbord[naarPos.rij, naarPos.kolom] = schaakstuk;
                        schaakbord[vanPos.rij, vanPos.kolom]   = null;
                    }
                    else
                    {
                        Console.WriteLine("Ongeldige zet");
                        VerplaatsStukken(schaakbord);
                    }
                }
                else
                {
                    schaakbord[naarPos.rij, naarPos.kolom] = schaakstuk;
                    schaakbord[vanPos.rij, vanPos.kolom]   = null;
                }
            }
            else
            {
                Console.WriteLine("Er staat geen schaakstuk op deze positie!");
            }
        }
コード例 #3
0
        static void VerplaatsStukken(Schaakstuk[,] schaakbord)
        {
            Positie vanPos  = new Positie();
            Positie naarPos = new Positie();

            while (true)
            {
                Console.Write("Geef 'van-positie' <bv A2>: ");
                string vanPosS = Console.ReadLine();
                StringToPositie(vanPosS, out vanPos);

                Console.Write("Geef 'naar-positie' <bv A3>: ");
                string naarPosS = Console.ReadLine();
                StringToPositie(naarPosS, out naarPos);

                MaakSprong(schaakbord, vanPos, naarPos);
                ToonsSchaakbord(schaakbord);


                //if(StringToPositie(vanPos, out pos))
                //{
                //    Schaakstuk item = (Schaakstuk)schaakbord.GetValue(pos.rij, pos.kolom);
                //    SchaakstukType type = item.type;
                //    Console.WriteLine("er staat een schaakstuk op van-positie: " + type);

                //}
                //else
                //{
                //    Console.WriteLine("false");
                //}
            }
        }
コード例 #4
0
        static bool StringToPositie(string txt, out Positie pos)
        {
            pos = new Positie();

            // "A2": "A" => kolom 0, "2" => rij 1
            try
            {
                pos.kolom = txt[0] - 'A';
                pos.rij   = Int32.Parse(txt[1].ToString()) - 1;
                return(true);
            }
            catch
            {
                Console.WriteLine("Ongeldige invoer");
                return(false);
            }
        }