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: какой игрок сейчас ходит? - вот такие шахматы и можно перемещать... }
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); }