/// <summary> /// Generate a random board /// </summary> /// <returns>The new generated board</returns> private MatixBoard GenerateNewBoard() { const int BOARD_SIZE = 8; MatixBoard board = new MatixBoard(); Random randNum = new Random(); int tokenIndex = randNum.Next(0, BOARD_SIZE * BOARD_SIZE); int cellCounter = 0; board.MatixCells = new List<List<MatixCell>>(); for (int i = 0; i < BOARD_SIZE; i++) { List<MatixCell> columns = new List<MatixCell>(); for (int j = 0; j < BOARD_SIZE; j++) { MatixCell c = new MatixCell(); c.Row = i; c.Column = j; c.Value = randNum.Next(-15, 15 + 1); if (cellCounter == tokenIndex) c.Token = true; else c.Token = false; cellCounter++; columns.Add(c); } board.MatixCells.Add(columns); } return board; }
/// <summary> /// Serialize MatixBoard into an XML string /// </summary> /// <param name="matixBoard"></param> /// <returns>XML formated string</returns> private string SerializeMatixBoard(MatixBoard matixBoard) { XmlSerializer s = new XmlSerializer(typeof(MatixBoard)); StringBuilder sb = new StringBuilder(); StringWriter sw = new StringWriter(sb); s.Serialize(sw, matixBoard); sw.Close(); return sb.ToString(); }
/// <summary> /// Construct a game /// </summary> /// <param name="firstEmail"></param> /// <param name="firstNickname"></param> /// <param name="secondEmail"></param> /// <param name="secondNickname"></param> public Game(string firstEmail, string firstNickname, string secondEmail, string secondNickname) { if(GenerateRandomTurn() == GameTurnType.HorizontalPlayer) { horisontalPlayer = new Player(firstEmail, firstNickname); verticalPlayer = new Player(secondEmail, secondNickname); } else { horisontalPlayer = new Player(secondEmail, secondNickname); verticalPlayer = new Player(firstEmail, firstNickname); } // Generate a new board board = GenerateNewBoard(); // Set who starts the game SetGenerateedRandomTurn(); }