Ejemplo n.º 1
0
        public ActionResult <Models.GameStateUpdate> ExecuteMove(Models.Board startBoard)
        {
            startBoard.CheckValidState();

            string winner            = startBoard.Winner();
            string azurePlayerSymbol = startBoard.WhichPlayersTurn();

            if (winner == Models.Board.INCONCLUSIVE)
            {
                // Game isn't over yet
                int          move      = startBoard.GetNextMove(azurePlayerSymbol);
                Models.Board nextBoard = startBoard.Play(move, azurePlayerSymbol);

                return(new ObjectResult(new Models.GameStateUpdate(
                                            azurePlayerSymbol,
                                            nextBoard.Winner(),
                                            move,
                                            nextBoard.gameBoard,
                                            nextBoard.WinningScenario()
                                            )));
            }
            else
            {
                // No-Op, basically
                return(new ObjectResult(new Models.GameStateUpdate(
                                            azurePlayerSymbol,
                                            startBoard.Winner(),
                                            null,
                                            startBoard.gameBoard,
                                            startBoard.WinningScenario()
                                            )));
            }
        }
Ejemplo n.º 2
0
 public void DeleteBoad(int id)
 {
     Models.Board board = new Models.Board();
     board.Id = id;
     _dbContext.Boards.Remove(board);
     _dbContext.SaveChanges();
 }
Ejemplo n.º 3
0
        public async Task <CreateNewBoardResult> Handle(CreateNewBoardCommand request, CancellationToken cancellationToken)
        {
            if (string.IsNullOrWhiteSpace(request.Title))
            {
                throw new ArgumentException("Cannot create new board with null or empty title");
            }

            if (string.IsNullOrWhiteSpace(request.Description))
            {
                request.Description = null;
            }

            var board = new Models.Board
            {
                Title       = request.Title,
                Description = request.Description
            };

            var result = await boardRepository.AddBoardAsync(board);

            return(new CreateNewBoardResult {
                BoardId = result.Id,
                CreationDate = result.CreationDate ?? new DateTime(0)
            });
        }
Ejemplo n.º 4
0
 private static DTO.Board ConvertBoard(Models.Board board, Models.Team teamA, Models.Team teamB)
 {
     return(new DTO.Board
     {
         Cards = board.Cards.Select(card => new DTO.Card
         {
             Agent = card.Agent,
             Word = card.Word,
             HasBeenRevealed = card.HasBeenRevealed
         }).ToList(),
         KnowAllForTeamA = ConvertPlayer(teamA.Coder), // TODO: move to teamDTO
         KnowAllForTeamB = ConvertPlayer(teamB.Coder)  // TODO: move to teamDTO
     });
 }
        public void GenerateNewBoardShouldReturnGrid()
        {
            // Arrange
            GameOfLifeController controller = new GameOfLifeController();

            controller.Request       = new System.Net.Http.HttpRequestMessage();
            controller.Configuration = new HttpConfiguration();
            Models.Board prevBoard = new Models.Board(10, 10);


            // Act
            var response = controller.CreateNewBoard(prevBoard);

            // Assert
            Assert.AreEqual(10, response.RowCount);
        }
Ejemplo n.º 6
0
        public async Task <Models.Board> Update(string id, Models.Board task, string Token)
        {
            var url     = BaseUrl + "/boards/" + id + "?key=" + AppKey + "&token=" + Token;
            var content = JsonConvert.SerializeObject(task);

            _client.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer");
            var httpResponse = await _client.PutAsync(url, new StringContent(content, Encoding.UTF8, "application/json"));

            if (!httpResponse.IsSuccessStatusCode)
            {
                throw new Exception("Cannot update label");
            }

            var updatedTask = JsonConvert.DeserializeObject <Models.Board>(await httpResponse.Content.ReadAsStringAsync());

            return(updatedTask);
        }
Ejemplo n.º 7
0
        public async Task <DeleteBoardResult> Handle(DeleteBoardCommand request, CancellationToken cancellationToken)
        {
            if (string.IsNullOrWhiteSpace(request.BoardId))
            {
                throw new ArgumentException("Cannot delete board with BoardId set to null or empty space");
            }

            var board = new Models.Board
            {
                Id = request.BoardId
            };

            var result = await boardRepository.DeleteBoardAsync(board);

            return(new DeleteBoardResult
            {
                BoardId = result.Id
            });
        }
Ejemplo n.º 8
0
        public void Attack(ref List <Models.Ship> shipList, Models.Board board)
        {
            Console.WriteLine("Board is ready.");

            Board.PrintBoard(board.BoardDimension);

            while (shipList.Count != 0)
            {
                Console.WriteLine("Enter hit position");
                var input = Console.ReadLine();
                if (InputValidation.ValidatePosition(input))
                {
                    var hitPos = Array.ConvertAll(input.Split(","), int.Parse);

                    foreach (var s in shipList)
                    {
                        if (Ship.DestroyShip(hitPos, board.BoardDimension, s))
                        {
                            Console.WriteLine(Environment.NewLine + "Hit!");
                            Board.ReprintOnHit(hitPos[0], hitPos[1], board.BoardDimension);
                        }
                        else
                        {
                            Console.WriteLine("No hit.Try again!" + Environment.NewLine);
                        }
                        if (s.HitCount != s.Length)
                        {
                            continue;
                        }
                        shipList.Remove(s);
                        break;
                    }
                }
                else
                {
                    Console.WriteLine("Invalid hit location.Try again!" + Environment.NewLine);
                }
            }
            Console.WriteLine("You win!");
        }
Ejemplo n.º 9
0
        // GET: Boards/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            var   boardDTO = boardService.Get(id);
            Board board    = new Models.Board
            {
                Id     = boardDTO.Id,
                Height = boardDTO.Height,
                Name   = boardDTO.Name,
                Type   = boardDTO.Type,
                Width  = boardDTO.Width
            };

            if (board == null)
            {
                return(HttpNotFound());
            }
            return(View(board));
        }
Ejemplo n.º 10
0
        public async Task <UpdateBoardDescriptionResult> Handle(UpdateBoardDescriptionCommand request, CancellationToken cancellationToken)
        {
            if (string.IsNullOrWhiteSpace(request.BoardId))
            {
                throw new ArgumentException("Cannot update board info when BoardId is set to empty or null");
            }

            if (string.IsNullOrWhiteSpace(request.Description))
            {
                request.Description = null;
            }

            var board = new Models.Board
            {
                Id          = request.BoardId,
                Description = request.Description
            };

            var result = await boardRepository.UpdateBoardDescriptionAsync(board);

            return(new UpdateBoardDescriptionResult {
                BoardId = result.Id
            });
        }
Ejemplo n.º 11
0
 public async Task <Models.Board> Update([FromBody] Models.Board boardToUpdate, string id, string Token)
 {
     return(await _boardService.Update(id, boardToUpdate, Token));
 }
Ejemplo n.º 12
0
 private void InitializeBoard()
 {
     GameBoard = new Models.Board(20, 30, 10, towerItems);
     this.layoutRoot.DataContext = GameBoard;
 }
Ejemplo n.º 13
0
        public bool AddShips(int startRow, int startColumn, int length, int alignment, ref List <Models.Ship> shipList, Models.Board board)
        {
            var ship = new Models.Ship
            {
                StartRow     = startRow,
                StartColumn  = startColumn,
                Length       = length,
                IsHorizontal = alignment == 0
            };


            if (!Board.CheckOverlap(shipList, ship, board.BoardDimension))
            {
                return(false);
            }
            shipList.Add(ship);
            return(true);
        }