コード例 #1
0
ファイル: Network.cs プロジェクト: romasvrd/SeaBattle.NET
 public Network(ShowMessageDelegate MsgDelegate,
                ReceiveShotDelegate ShotDelegate,
                ReceiveCellShotResultDelegate ShotResultDelegate)
 {
     msgDelegate        = MsgDelegate;
     shotDelegate       = ShotDelegate;
     shotResultDelegate = ShotResultDelegate;
     _terminated        = false;
 }
コード例 #2
0
        public MainForm()
        {
            SuspendLayout();
            //Делегат на функцию отображения сообщения в чате
            ShowMessageDelegate del = new ShowMessageDelegate(ShowMessage);
            //делегат на функцию выстрела соперника в поле игрока
            ReceiveShotDelegate delShot = new ReceiveShotDelegate(Shot);
            //делегат на функцию выстрела игрока в поле соперника
            ReceiveCellShotResultDelegate delShotRes = new ReceiveCellShotResultDelegate(ShotResults);

            _boardLeft  = new Board();                                              //левое игровое поле
            _boardRight = new Board(false);                                         //правое игровое поле. В конструкторе указываем, что не будем на нем рисовать корабли

            _scoreboard = new ScoreBoard();                                         //счёт
            _controller = new GameController(_boardLeft, _boardRight, _scoreboard); //контроллер игры
            network     = new Network(del, delShot, delShotRes);                    //контроллер сетевого соединения

            _boardLeft.network  = network;
            _boardRight.network = network;
            _shuffleButton      = CreateButton(ShuffleCharacter.ToString(), ButtonBackColor);
            _newGameButton      = CreateButton(NewGameCharacter.ToString(), ButtonBackColor);
            _connectButton      = CreateButton(ConnectCharacter.ToString(), ButtonBackColor);
            _startGameButton    = CreateButton(StartGameCharacter.ToString(), ButtonBackColor);
            _sendButton         = CreateButton(SendCharacter.ToString(), ButtonBackColor);

            pnBot = new Panel {
                Dock = DockStyle.Bottom
            };

            _richTextBox = new RichTextBox();

            _gbMySocket = new GroupBox {
                Text = "Me"
            };
            _gbFriendSocket = new GroupBox {
                Text = "Friend"
            };
            friendIP = new TextBox {
                Text = "127.0.0.1"
            };
            tbMyIP = new TextBox {
                Text = "127.0.0.1"
            };
            tbMyPort = new TextBox {
                Text = "12345"
            };
            friendPort = new TextBox {
                Text = "12346"
            };

            pnBot = new Panel {
                Dock = DockStyle.Bottom
            };
            outMsg            = new TextBox();
            _sendButton.Dock  = DockStyle.Right;
            outMsg.Dock       = DockStyle.Fill;
            _richTextBox.Dock = DockStyle.Top;
            pnBot.Controls.Add(outMsg);
            pnBot.Controls.Add(_sendButton);
            pnBot.Controls.Add(_richTextBox);
            SetupWindow();
            LayoutControls();

            _scoreboard.GameEnded += OnGameEnded;

            _shuffleButton.Click   += OnShuffleButtonClick;
            _startGameButton.Click += OnStartGameButtonClick;
            _newGameButton.Click   += OnNewGameButtonClick;
            _connectButton.Click   += OnConnectButtonClick;
            _sendButton.Click      += OnSendButtonClick;

            ToolTip toolTip1 = new ToolTip();

            toolTip1.AutoPopDelay = 5000;
            toolTip1.InitialDelay = 1000;
            toolTip1.ReshowDelay  = 500;

            toolTip1.SetToolTip(_shuffleButton, "Разместить автоматически");
            toolTip1.SetToolTip(_startGameButton, "Начать игру");
            toolTip1.SetToolTip(_newGameButton, "Новая игра");
            toolTip1.SetToolTip(_connectButton, "Установить связь");
            toolTip1.SetToolTip(_sendButton, "Отправить сообщение");

            this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.MainForm_FormClosed);

            ResumeLayout();

            StartNewGame();
        }