예제 #1
0
        private void newGameButton_Click(object sender, EventArgs e)
        {
            this.Enabled = false;
            using (NewGameDialog dlg = new NewGameDialog())
            {
                if (dlg.ShowDialog() == DialogResult.OK)
                {
                    int   playersCount = dlg.playersCount;
                    float money        = dlg.millions;

                    using (PlayersChoosing dlg2 = new PlayersChoosing(playersCount, money))
                    {
                        if (dlg2.ShowDialog() == DialogResult.OK)
                        {
                            players = dlg2.players;
                            Hide();
                            using (Monopoly gw = new Monopoly(players))
                            {
                                Game g = new Game(players, gw);
                                if (gw.ShowDialog() == DialogResult.OK)
                                {
                                    Show();
                                }
                            };
                        }
                    }
                }
            }
            this.Enabled = true;
        }
예제 #2
0
        private void OpenNewGameDialog()
        {
            NewGameDialog dialog = new NewGameDialog
            {
                DataContext = this
            };

            if (dialog.ShowDialog() == true)
            {
                Grid.Shuffle();
            }
        }
예제 #3
0
        private void miNewGame_Click(object sender, System.EventArgs e)
        {
            if (_model != null)
            {
                DialogResult result = MessageBox.Show(this, "Do you wish to discard the current game?" +
                                                      "\n(changes since last save will be lost)", "Confirm", MessageBoxButtons.OKCancel);
                if (result != DialogResult.OK)
                {
                    return;
                }
            }

            //create the dialog and show it
            NewGameDialog dlg = new NewGameDialog();

            dlg.ShowDialog(this);
            if (dlg.DialogResult != DialogResult.OK)
            {
                return;
            }

            int NumberOfPlayers = dlg.NumberOfPlayers;
            int SizeOfMap       = dlg.SizeOfMap;

            if (NumberOfPlayers > _numClients)
            {
                MessageBox.Show("Not enough players are connected");
                return;
            }


            //Create new game with parameters from the New Game dialog
            _model = new GameModel(NumberOfPlayers, SizeOfMap, SizeOfMap, (SizeOfMap) * (SizeOfMap) / 17);
            //number of systems, we'll get
            //this from the new game
            //dialog eventually
            _mapBoard         = new MapBoard(_model.Update(), -1);
            _mapBoard.HexSize = ClientSize.Width / (SizeOfMap * 2);

            InitializePlayers();

            //miNextTurn.Text = "&Next Turn!";
            miSaveGame.Enabled = true;
            PrepBoard();
            Invalidate();
        }
예제 #4
0
        /// <summary>
        /// Starts a new game.
        /// </summary>
        private void DoNewGame()
        {
            if ((CheckersUI.IsPlaying) || (CheckersUI.Winner != 0))
            {
                if (!DoCloseGame())
                {
                    return;
                }
                // Stop current game (with no winner)
                CheckersUI.Stop();
            }

            // Get new game type
            NewGameDialog newGame = new NewGameDialog(settings, agentNames);

            // Set defaults
            newGame.GameType    = gameType;
            newGame.Player1Name = lblNameP1.Text;
            newGame.Player2Name = lblNameP2.Text;

            // Show dialog
            if (newGame.ShowDialog(this) == DialogResult.Cancel)
            {
                return;
            }

            // Set new game parameters
            gameType = newGame.GameType;
            agent    = null;

            // Set Game Panel properties
            lblNameP1.Text  = newGame.Player1Name;
            lblNameP2.Text  = newGame.Player2Name;
            picPawnP1.Image = newGame.ImageSet[0];
            picPawnP2.Image = newGame.ImageSet[2];

            // Set UI properties
            switch (gameType)
            {
            case CheckersGameType.SinglePlayer:
                CheckersUI.Player1Active = true;
                CheckersUI.Player2Active = false;
                agent = agents[newGame.AgentIndex];
                break;

            case CheckersGameType.Multiplayer:
                CheckersUI.Player1Active = true;
                CheckersUI.Player2Active = true;
                break;

            case CheckersGameType.NetGame:
                remotePlayer = newGame.RemotePlayer;
                if (remotePlayer == null)
                {
                    MessageBox.Show(this, "Remote user disconnected before the game began", "Checkers", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    return;
                }
                CheckersUI.Player1Active = true;
                CheckersUI.Player2Active = (remotePlayer == null);
                if (!menuViewNetPanel.Checked)
                {
                    menuViewNetPanel_Click(menuViewNetPanel, EventArgs.Empty);
                }
                tmrConnection.Start();
                panNet.Visible   = true;
                lnkLocalIP.Text  = Dns.GetHostByName(Dns.GetHostName()).AddressList[0].ToString();
                lnkRemoteIP.Text = ((IPEndPoint)remotePlayer.Socket.RemoteEndPoint).Address.ToString();
                AppendMessage("", "Connected to player");
                break;

            default:
                return;
            }
            CheckersUI.CustomPawn1 = newGame.ImageSet[0];
            CheckersUI.CustomKing1 = newGame.ImageSet[1];
            CheckersUI.CustomPawn2 = newGame.ImageSet[2];
            CheckersUI.CustomKing2 = newGame.ImageSet[3];

            // Create the new game
            CheckersGame game = new CheckersGame();

            game.FirstMove = newGame.FirstMove;

            // Start a new checkers game
            CheckersUI.Play(game);
        }