public override void DoWork(IEnumerable<string> args) { if (Utils.IsInGame()) { if (Utils.CheckArgs(ArgsNeed, args.Count())) { var reques = new GameStatRequest {gameID = CurrentUser.CurrentGame.Value}; var response = ServerProvider.MakeRequest<GameStatResponse>(reques); Console.WriteLine("Game \"" + response.ID + "\" stats:"); switch (response.Act) { case Act.AbandonedByWhite: Console.WriteLine("Was abandoned by White"); break; case Act.AbandonedByBlack: Console.WriteLine("Was abandoned by Black"); break; case Act.Canceld: Console.WriteLine("Was canceld"); break; case Act.WaitingOpponent: Console.WriteLine("Waiting for 2nd player"); break; case Act.Pat: Console.WriteLine("Finished with pat"); break; case Act.WhiteWon: Console.WriteLine("Won by White"); break; case Act.BlackWon: Console.WriteLine("Won by Black"); break; case Act.InProgress: Console.WriteLine("Now in progress"); break; default: Console.WriteLine("Unexpected act"); break; } Console.WriteLine("White player: " + response.PlayerWhite); Console.WriteLine("Black player: " + response.PlayerBlack); Console.WriteLine("Now " + ((response.Turn == Side.BLACK) ? "black's" : "white's") + " turn"); } } }
public ActionResult Status() { var board = new Board(); board.InitialPosition(); string res; var request = new MoveListRequest {Game = int.Parse(Request.Params["gameID"])}; var response = ServerProvider.MakeRequest<MoveListResponse>(request); var request2 = new GameStatRequest {gameID = int.Parse(Request.Params["gameID"])}; var response2 = ServerProvider.MakeRequest<GameStatResponse>(request2); board.ApplyMoves(response.Moves); switch (response2.Act) { case Act.AbandonedByWhite: res = ("Was abandoned by White"); break; case Act.AbandonedByBlack: res = ("Was abandoned by Black"); break; case Act.Canceld: res = ("Was canceld"); break; case Act.WaitingOpponent: res = ("Waiting for 2nd player"); break; case Act.Pat: res = ("Finished with pat"); break; case Act.WhiteWon: res = ("Won by White"); break; case Act.BlackWon: res = ("Won by Black"); break; case Act.BlackCheck: res = ("Check Black"); break; case Act.WhiteCheck: res = ("Check White"); break; case Act.InProgress: res = ("Now in progress"); break; default: res = ("Unexpected act"); break; } /* return Json(new {DataBoard = board.ShowBoardToWeb(), DataMove = response.Moves.Select(move => { dynamic m = new {From = move.From, To = move.To}; if (move.Result != MoveResult.SilentMove) { m.Result = move.Result; } return m; }), DataStatus = response2.Act, DataTextStatus = res, DataWhitePlayer = response2.PlayerWhite, DataBlackPlayer = response2.PlayerBlack, DataTurn = response2.Turn, EatedWhites = response2.EatedWhites, EatedBlacks = response2.EatedBlacks}, JsonRequestBehavior.AllowGet); }*/ return Json(new { DataBoard = board.ShowBoardToWeb(), DataMove = response.Moves.Select(move => { dynamic m = new { From = move.From, To = move.To, DataMovedFigure = move.MovedFigure, InWhom = move.InWhom, Result1 = (move.Result & MoveResult.Taking) == MoveResult.Taking ? "×" : "—", Result2 = (move.Result & MoveResult.Check) == MoveResult.Check ? "+" : ((move.Result & MoveResult.Mate) == MoveResult.Mate ? "#" : ((move.Result & MoveResult.Pat) == MoveResult.Pat) ? "=" : "" ), Result3 = (move.Result & MoveResult.LongCastling) == MoveResult.LongCastling ? "0—0—0" : ((move.Result & MoveResult.ShortCastling) == MoveResult.ShortCastling ? "0—0" : "y") }; return m; }), DataStatus = response2.Act, DataTextStatus = res, DataWhitePlayer = response2.PlayerWhite, DataBlackPlayer = response2.PlayerBlack, DataTurn = response2.Turn, EatedWhites = response2.EatedWhites, EatedBlacks = response2.EatedBlacks }, JsonRequestBehavior.AllowGet); }