示例#1
0
        /// <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;
        }
示例#2
0
 /// <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();
 }
示例#3
0
        /// <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();
        }