Example #1
0
        private void addStandardGame_Click(object sender, EventArgs e)
        {
            if (UserHasActiveGame())
            {
                MessageBox.Show("Error: You already have a game queued in the lobby table!\nDelete this game and try again.");
                return;
            }

            // Set mine and enemy's color...
            Random rand     = new Random(Guid.NewGuid().GetHashCode());
            double randNum  = rand.NextDouble();
            bool   hostTurn = true;// (randNum < 0.5);

            moveLogic.myTurn  = hostTurn;
            moveLogic.myColor = moveLogic.myTurn ?
                                moveLogic.myColor = MoveLogic.pieceColor.white :
                                                    moveLogic.myColor = MoveLogic.pieceColor.black;

            MoveLogic.pieceColor guestColor = (moveLogic.myColor == MoveLogic.pieceColor.white) ?
                                              MoveLogic.pieceColor.black :
                                              MoveLogic.pieceColor.white;

            // Create the new session to add to the lobby table
            Session mySession = new Session()
            {
                HostPlayer       = me.Username,
                GuestPlayer      = "",
                GameTimerSeconds = 1200,
                MoveTimerSeconds = 120,
                CustomGameMode   = 0,
                GuestColor       = (int)guestColor
            };

            // Create the signal to send
            TCPSignal signal = new TCPSignal()
            {
                SignalType = Signal.CreateSession,
                NewSession = mySession
            };

            // Send the json over to the server
            string json = JsonConvert.SerializeObject(signal) + "\r";

            byte[] jsonBytes  = ASCIIEncoding.ASCII.GetBytes(json);
            byte[] readBuffer = new byte[65536];
            stream.Write(jsonBytes, 0, jsonBytes.Length);

            RefreshTable();

            // Set the session ID
            mySession.SessionID = (int)lobbyTable.Rows[lobbyTable.Rows.Count - 1].Cells[0].Value;

            GameSession session = new GameSession(me, new User("", ""), stream, mySession, this, moveLogic);

            session.ShowDialog();
        }
Example #2
0
        private void addGameButton_Click(object sender, EventArgs e)
        {
            if (gamesList.SelectedRows.Count > 0)
            {
                // Get the game ID from the row
                int gameId = (int)gamesList.SelectedRows[0].Cells[0].Value;

                // Match the game ID with the appropriate CustomGame in the list
                CustomGame game = gameList.Single(x => x.GameID == gameId);

                // Convert the list of pieces into a double array (board)
                MoveLogic.Piece[][] pieces = new MoveLogic.Piece[8][];
                for (int i = 0; i < 8; ++i)
                {
                    pieces[i] = new MoveLogic.Piece[8];
                }
                foreach (MoveLogic.Piece piece in game.Pieces)
                {
                    MoveLogic.Coordinates c = piece.Coordinates;
                    pieces[c.X][c.Y] = new MoveLogic.Piece();
                    pieces[c.X][c.Y] = piece;
                }

                Random rand     = new Random(Guid.NewGuid().GetHashCode());
                double randNum  = rand.NextDouble();
                bool   hostTurn = true;// (randNum < 0.5);

                moveLogic.myTurn  = hostTurn;
                moveLogic.myColor = moveLogic.myTurn ?
                                    moveLogic.myColor = MoveLogic.pieceColor.white :
                                                        moveLogic.myColor = MoveLogic.pieceColor.black;

                MoveLogic.pieceColor guestColor = (moveLogic.myColor == MoveLogic.pieceColor.white) ?
                                                  MoveLogic.pieceColor.black :
                                                  MoveLogic.pieceColor.white;

                // Create the new session to add to the lobby table
                Session mySession = new Session()
                {
                    HostPlayer       = game.Username,
                    GuestPlayer      = "",
                    GameTimerSeconds = game.GameTimer,
                    MoveTimerSeconds = game.MoveTimer,
                    CustomGameMode   = 3 /* Custom game */,
                    BoardPieces      = pieces,
                    GameID           = gameId,
                    GuestColor       = (int)guestColor
                };

                // Create the signal to send
                TCPSignal signal = new TCPSignal()
                {
                    SignalType = Signal.CreateSession,
                    NewSession = mySession
                };

                // Send the json over to the server
                string json       = JsonConvert.SerializeObject(signal) + "\r";
                byte[] jsonBytes  = ASCIIEncoding.ASCII.GetBytes(json);
                byte[] readBuffer = new byte[65535];
                lobby.stream.Write(jsonBytes, 0, jsonBytes.Length);

                lobby.RefreshTable();
                mySession.SessionID = (int)lobby.GetLobbyTable().Rows[lobby.GetLobbyTable().Rows.Count - 1].Cells[0].Value;

                GameSession session = new GameSession(me, new User("", ""), stream, mySession, lobby, moveLogic, game);
                session.ShowDialog();
                Hide();
                Close();
            }
        }