public Board(int rows=6, int columns=7) { Cells = new Checker[rows,columns]; for (int i = 0; i < rows; ++i) for (int j = 0; j < columns; ++j) Cells[i, j] = Checker.Empty; }
/// <summary> /// Actualiza la posicion de las fichas de checkers despues de un turno durante una partida de juego checkers /// </summary> /// <param name="boardMatrixUpdate"></param> public void UpdateCheckersGuiPosition(Checker[,] boardMatrixUpdate) { boardMatrix = boardMatrixUpdate; buttonList.ForEach(button => { int row = Grid.GetRow(button); int col = Grid.GetColumn(button); if (boardMatrixUpdate[row, col] == Checker.player1Checker) { button.Content = "•"; button.FontSize = 20; button.Foreground = player1Color; } else { if (boardMatrixUpdate[row, col] == Checker.player1King) { button.Content = "♛"; button.FontSize = 20; button.Foreground = player1Color; } else { PlayerTwoCheckersUpdate(boardMatrixUpdate, button); } } }); }
private void insertKingRegularMovesToList(Checker[,] i_Board) { checkRightRegularMove((int)m_Color, i_Board); checkLeftRegularMove((int)m_Color, i_Board); checkRightRegularMove((int)OppositeColor(), i_Board); checkLeftRegularMove((int)OppositeColor(), i_Board); }
public void initializeBoard(int i_BoardSize) { m_CurrentMove = new Move(); m_CurrentTurn = ePlayerColor.White; m_Board = new Checker[i_BoardSize, i_BoardSize]; m_BlacksCounter = 0; m_WhitesCounter = 0; ColorToss(); for (int i = 0; i < (i_BoardSize / 2) - 1; i++) // initialize the black checkers on the board { for (int j = (i + 1) % 2; j < i_BoardSize; j += 2) { m_Board[i, j] = new Checker(ePlayerColor.Black, new SquarePosition(i, j)); m_BlacksCounter++; } } for (int i = i_BoardSize - 1; i > i_BoardSize / 2; i--) // initialize the white checkers on the board { for (int j = (i + 1) % 2; j < i_BoardSize; j += 2) { m_Board[i, j] = new Checker(ePlayerColor.White, new SquarePosition(i, j)); m_WhitesCounter++; } } }
/// <summary> /// Crea una solicitud al servidor para actualiza el tablero de la partida /// despues de una accion por el jugador 1 de la partida /// </summary> /// <param name="updateBoardMatrix"></param> /// <param name="matchNumber"></param> /// <param name="playerTwoCheckers"></param> /// <param name="playerOneCheckers"></param> /// <exception> /// Esta excepcion puede retornar una excepcion tipo EndpointNotFoundException /// </exception> public static void Player1TurnResult(Checker [,] updateBoardMatrix, int matchNumber, int playerTwoCheckers, int playerOneCheckers) { Checker[][] checkersNewMatrix = new Checker[updateBoardMatrix.GetLength(0)][]; int rowNumber = 0; int columnNumber = 0; for (rowNumber = 0; rowNumber < 8; rowNumber++) { checkersNewMatrix[rowNumber] = new Checker[updateBoardMatrix.GetLength(1)]; for (columnNumber = 0; columnNumber < 8; columnNumber++) { checkersNewMatrix[rowNumber][columnNumber] = updateBoardMatrix[rowNumber, columnNumber]; } } try { InstanceContext instanceContext = new InstanceContext(new GameManagerCallbackHandler()); GameManagerClient server = new GameManagerClient(instanceContext); server.Player1Turn(checkersNewMatrix, matchNumber, playerTwoCheckers, playerOneCheckers); } catch (EndpointNotFoundException) { MessageBox.Show(Properties.Resources.NoConnectionMessage); } }
public static void DrawBoard(Checker[,] i_Board) { StringBuilder boardBuilder = new StringBuilder(); int sizeOfBoard = i_Board.GetLength(0); for (int i = 0; i < sizeOfBoard; i++) { boardBuilder.Append(" ").Append(" ").Append(" ").Append((char)('A' + i)); ////first line of BIG letters } boardBuilder.AppendLine(); for (int i = 0; i < (2 * sizeOfBoard) + 1; i++) { //// other (2*sizeofboard + 1) lines to represent the gameplay if (i % 2 == 0) { boardBuilder.Append(' ').Append('=', (4 * sizeOfBoard) + 1); boardBuilder.AppendLine(); } else if (i % 2 == 1) { boardBuilder.Append((char)('a' + (i / 2))).Append("|"); DrawLine((i - 1) / 2, sizeOfBoard, i_Board, boardBuilder); boardBuilder.AppendLine(); } } Ex02.ConsoleUtils.Screen.Clear(); Console.Write(boardBuilder.ToString()); }
private void PlayerTwoCheckersUpdate(Checker[,] boardMatrixUpdate, Button button) { int row = Grid.GetRow(button); int col = Grid.GetColumn(button); if (boardMatrixUpdate[row, col] == Checker.player2Checker) { button.Content = "•"; button.FontSize = 20; button.Foreground = player2Color; } else { if (boardMatrixUpdate[row, col] == Checker.player2King) { button.Content = "♚"; button.FontSize = 20; button.Foreground = player2Color; } else { button.Content = ""; } } }
public Form1() { FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow; StartPosition = FormStartPosition.CenterScreen; ClientSize = new Size(ElementSize * 8, ElementSize * 8); DoubleBuffered = true; Text = "Checkers"; field = new Game().CreateMap(); }
public bool insertSoldierEatingMovesToList(Checker[,] i_Board) { bool thereAreEatingMoves = false; m_PossibleMoves.Clear(); thereAreEatingMoves = checkRightEatingMove((int)m_Color, i_Board) || checkLeftEatingMove((int)m_Color, i_Board); return(thereAreEatingMoves); }
public Board(int rows = 6, int columns = 7) { Cells = new Checker[rows, columns]; for (int i = 0; i < rows; ++i) { for (int j = 0; j < columns; ++j) { Cells[i, j] = Checker.Empty; } } }
private void SpawnAllCheckers() { activeChecker = new List <GameObject>(); Checkers = new Checker[8, 8]; for (int i = 0; i < 8; i++) { SpawnChecker(0, i, 0); SpawnChecker(1, i, 7); } }
private void checkLeftRegularMove(int i_Color, Checker[,] i_Board) { int i = m_Position.Y; int j = m_Position.X; int boardSize = i_Board.GetLength(0); if (i - i_Color < boardSize && i - i_Color >= 0 && j - 1 >= 0 && i_Board[i - i_Color, j - 1] == null) { m_PossibleMoves.Add(new Move(m_Position, new SquarePosition(i - i_Color, j - 1))); //insert possible move to array } }
void generateBoard() { if (PlayerPrefs.HasKey("BoardSize")) { boardSize = PlayerPrefs.GetInt("BoardSize"); } boardSize = PlayerPrefs.GetInt("BoardSize"); checkersOnBoard = new Checker[boardSize, boardSize]; board = new GameObject[boardSize, boardSize]; GameObject boardObject = Instantiate(new GameObject("Board"), gameObject.transform); boardObject.transform.localPosition = new Vector3(0, 0, 0.1f); GameObject checkerObject = Instantiate(new GameObject("Checkers"), gameObject.transform); checkerObject.transform.localPosition = new Vector3(0, 0, 0); bool color = true; //true means black, false white for (int i = 0; i < boardSize; i++) { color = !color; for (int j = 0; j < boardSize; j++) { color = !color; if (color) { board[i, j] = Instantiate(blackField, boardObject.transform); if (j < (boardSize / 2 - 1))//generate red { createChecker(checkerObject.transform, false, new int[] { i, j }); } if (boardSize / 2 < j)//generate white { createChecker(checkerObject.transform, true, new int[] { i, j }); } } else { board[i, j] = Instantiate(whiteField, boardObject.transform); } board[i, j].transform.SetParent(boardObject.transform); board[i, j].transform.localPosition = new Vector3(i, j, 0); } } }
public MyForm(Checker[,] field) { black.Initialize(Color.Black); white.Initialize(Color.White); //to make a turn mark your fields to go one by one and press "T". To simulate a game //press space button. Happy gaming, your BandW404 team! FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow; this.field = field; validator = new Validator(); StartPosition = FormStartPosition.CenterScreen; ClientSize = new Size(ElementSize * 8, ElementSize * 8); DoubleBuffered = true; Text = "Checkers"; tickCount = 0; this.KeyDown += MyForm_KeyDown; this.MouseClick += MyForm_MouseClick; }
private static void DrawLine(int i_LineIndex, int i_SizeOfBoard, Checker[,] i_BoardMatrix, StringBuilder i_BoardBuilder) { for (int j = 0; j < i_SizeOfBoard; j++) { if ((j + i_LineIndex) % 2 == 1) { i_BoardBuilder.Append(" "); if (i_BoardMatrix[i_LineIndex, j] == null) { i_BoardBuilder.Append(' '); } else if (i_BoardMatrix[i_LineIndex, j].Color == ePlayerColor.White) { if (i_BoardMatrix[i_LineIndex, j].Type == Checker.eCheckerType.Soldier) { i_BoardBuilder.Append('X'); } else { i_BoardBuilder.Append('K'); } } else if (i_BoardMatrix[i_LineIndex, j].Color == ePlayerColor.Black) { if (i_BoardMatrix[i_LineIndex, j].Type == Checker.eCheckerType.Soldier) { i_BoardBuilder.Append('O'); } else { i_BoardBuilder.Append('U'); } } i_BoardBuilder.Append(" ").Append("|"); } else { i_BoardBuilder.Append(" ").Append(" ").Append(" ").Append("|"); } } }
public void InsertPossibleCorrectMovesToList(Checker[,] i_Board) { bool thereAreEatingMoves = false; if (m_Type == eCheckerType.Soldier) { thereAreEatingMoves = insertSoldierEatingMovesToList(i_Board); if (!thereAreEatingMoves) { insertSoldierRegularMovesToList(i_Board); } } else if (m_Type == eCheckerType.King) { thereAreEatingMoves = insertKingEatingMovesToList(i_Board); if (!thereAreEatingMoves) { insertKingRegularMovesToList(i_Board); } } }
private bool checkLeftEatingMove(int i_Color, Checker[,] i_Board) { bool thereIsEatingMove = false; int i = m_Position.Y; int j = m_Position.X; int boardSize = i_Board.GetLength(0); if (i - (2 * i_Color) < boardSize && j - 2 >= 0 && i - (2 * i_Color) >= 0 && i_Board[i - i_Color, j - 1] != null && i_Board[i - i_Color, j - 1].Color == OppositeColor()) { if (i_Board[i - (2 * i_Color), j - 2] == null) { m_PossibleMoves.Add(new Move(m_Position, new SquarePosition(i - (2 * i_Color), j - 2))); //insert move to array thereIsEatingMove = true; } } return(thereIsEatingMove); }
private void GenerateGame() { buttonList = Board.Children.Cast <Button>().ToList(); boardMatrix = new Checker[8, 8]; int travelRow; for (travelRow = 0; travelRow < 8; travelRow++) { if (travelRow == 0 || travelRow == 2 || travelRow == 6) { int travelColumns; for (travelColumns = 0; travelColumns < 7; travelColumns += 2) { if (travelRow == 0 || travelRow == 2) { boardMatrix[travelRow, travelColumns] = Checker.player2Checker; } else { boardMatrix[travelRow, travelColumns] = Checker.player1Checker; } } } GeneratingGameProcess(travelRow); } player1Turn = true; checkPlayerSecondClick = false; rowNumber = -1; columnNumber = 0; previousRow = 0; previousColumn = 0; player1CheckerCount = 12; player2CheckerCount = 12; GenerateCheckers(); }
private void insertSoldierRegularMovesToList(Checker[,] i_Board) { checkRightRegularMove((int)m_Color, i_Board); checkLeftRegularMove((int)m_Color, i_Board); }
public void Update(Checker[,] field) { this.field = field; Invalidate(); }
public Grid () { _grid = new Checker[10,10]; InitializeGrid (); }
public void InitGame() { this.size = 8; ArrayField = new Checker [this.size, this.size]; bool isBlack = false; checkersToDelete = new List<Cell>(); // возможные бои для выбранной шашки battleCheckers = new List<Cell>(); // все возможные бои на доске moves = new List<Cell>(); // возможные ходы для выбранной шашки jump = false; currentPlayer = 1; // 1 - white, 2 - black IsChecked = false; countWhiteChecker = countBlackChecker = 12; for (int x = 0; x < this.size; x++) { for (int y = 0; y < this.size; y++) { if (isBlack && y < 3) ArrayField[x, y] = new Checker(x, y, 1, 2, true, false, 0); else if (isBlack && y > 4) ArrayField[x, y] = new Checker(x, y, 1, 1, true, false, 0); else if (isBlack) ArrayField[x, y] = new Checker(x, y, 0, 0, true, false, 0); else ArrayField[x, y] = new Checker(x, y, 0, 0, false, false, 0); isBlack = !isBlack; } isBlack = !isBlack; } }
public Board(int i_ChoiseForBoardSize) { r_BoardSize = (ePossibleBoardSizes)i_ChoiseForBoardSize; r_BoardMatrix = new Checker[(int)r_BoardSize, (int)r_BoardSize]; }