Пример #1
0
        static public void GameLoop()
        {
            Board tmpBrd = new Board();

            tmpBrd.DrawDesktop();
            //test
            string mv         = "";
            bool   WantToPlay = true;

            while (WantToPlay)
            {
                mv = Console.ReadLine();
                if (mv == "exit")
                {
                    WantToPlay = false;
                    Console.Clear();
                    //return; need it?
                }
                if (mv == "history")
                {
                    //print history
                    tmpBrd.PrintHistory();
                }
                else
                {
                    tmpBrd.Move(new Step(mv));
                    tmpBrd.DrawDesktop();
                }
            } //TODO: какой игрок сейчас ходит? - вот такие шахматы и можно перемещать...
        }
Пример #2
0
        public Chess Move(string move)                //Example: move = Ke2e4 (K = king, e2 = old move, e4 = new move)
        {
            FigureMoving fm = new FigureMoving(move); //fm = from, to, figure, promotion

            if (!moves.CanMove(fm))
            {
                return(this);
            }

            if (board.IsCheckAfterMove(fm))
            {
                return(this); //the same board
            }

            Board nextBoard = board.Move(fm);       //отвечает за ход, содержит всю инфу о доске, массив фигур, фен от которого отталкивается при пост новой доски, после хода

            Chess nextChess = new Chess(nextBoard); //запускает игру

            return(nextChess);
        }