예제 #1
0
        public CheckmateDialog(ChessUILogic chessUILogic)
        {
            UILogic = chessUILogic;

            CheckmateLabel  = new Label();
            ReturnToMenuBtn = new Button();

            CheckmateLabel.AutoSize = true;
            CheckmateLabel.Name     = "CheckmateLabel";
            CheckmateLabel.Text     = "Checkmate!!! Black won !!!";
            CheckmateLabel.Font     = new Font(CheckmateLabel.Font.FontFamily, 30);
            CheckmateLabel.Size     = new Size(650, 46);
            CheckmateLabel.Location = new Point(startX + fieldSize / 2 - CheckmateLabel.Width / 2, startY + fieldSize / 2 - CheckmateLabel.Height / 2);
            CheckmateLabel.Visible  = false;

            ReturnToMenuBtn.Name     = "ReturnToMenuBtn";
            ReturnToMenuBtn.Size     = new Size(mainMenuBtnXSize, mainMenuBtnYSize);
            ReturnToMenuBtn.Location = new Point(startX + fieldSize / 2 - ReturnToMenuBtn.Width / 2, CheckmateLabel.Location.Y + CheckmateLabel.Height + mainMenuBtnGap);
            ReturnToMenuBtn.Text     = "Return to Menu";
            ReturnToMenuBtn.TabIndex = 0;
            ReturnToMenuBtn.TabStop  = false;
            ReturnToMenuBtn.Visible  = false;
            ReturnToMenuBtn.UseVisualStyleBackColor = true;
            ReturnToMenuBtn.Click += new EventHandler(ReturnToMenuBtn_Click);
        }
예제 #2
0
 public GameControls(ChessUILogic chessUILogic)
 {
     UILogic         = chessUILogic;
     PlayingField    = new PlayingField(chessUILogic);
     RightBar        = new RightBar(chessUILogic);
     CheckmateDialog = new CheckmateDialog(chessUILogic);
 }
예제 #3
0
        public ConnectionMenu(ChessUILogic chessUILogic)
        {
            UILogic     = chessUILogic;
            HostLabel   = new Label();
            PortLabel   = new Label();
            HostTextBox = new TextBox();
            PortTextBox = new TextBox();
            StartStopWaitingConnectionBtn = new Button();
            ReturnToMenuBtn2 = new Button();

            HostLabel.AutoSize  = false;
            HostLabel.Name      = "HostLabel";
            HostLabel.Text      = "Host:";
            HostLabel.Location  = new Point(connMenuLabelX, hostLabelY);
            HostLabel.Size      = new Size(connMenuLabelSizeX, connMenuLabelSizeY);
            HostLabel.TextAlign = ContentAlignment.MiddleCenter;
            HostLabel.Visible   = false;

            PortLabel.AutoSize  = false;
            PortLabel.Name      = "PortLabel";
            PortLabel.Text      = "Port:";
            PortLabel.Location  = new Point(connMenuLabelX, portLabelY);
            PortLabel.Size      = new Size(connMenuLabelSizeX, connMenuLabelSizeY);
            PortLabel.TextAlign = ContentAlignment.MiddleCenter;
            PortLabel.Visible   = false;

            HostTextBox.Location = new Point(connMenuTextBoxX, hostLabelY);
            HostTextBox.Name     = "HostTextBox";
            HostTextBox.Size     = new Size(connMenuTextBoxSizeX, connMenuTextBoxSizeY);
            HostTextBox.TabIndex = 0;
            HostTextBox.Visible  = false;

            PortTextBox.Location = new Point(connMenuTextBoxX, portLabelY);
            PortTextBox.Name     = "PortTextBox";
            PortTextBox.Size     = new Size(connMenuTextBoxSizeX, connMenuTextBoxSizeY);
            PortTextBox.TabIndex = 1;
            PortTextBox.Visible  = false;

            StartStopWaitingConnectionBtn.Name     = "StartStopWaitingConnectionBtn";
            StartStopWaitingConnectionBtn.Size     = new Size(connMenuBtnSizeX, connMenuBtnSizeY);
            StartStopWaitingConnectionBtn.Location = new Point(ConnectBtnX, connMenuBtnY);
            StartStopWaitingConnectionBtn.Text     = "Start waiting for connection";
            StartStopWaitingConnectionBtn.TabIndex = 2;
            StartStopWaitingConnectionBtn.TabStop  = false;
            StartStopWaitingConnectionBtn.Visible  = false;
            StartStopWaitingConnectionBtn.UseVisualStyleBackColor = true;
            StartStopWaitingConnectionBtn.Click += new EventHandler(StartStopWaitingConnectionBtn_Click);

            ReturnToMenuBtn2.Name     = "ReturnToMenuBtn2";
            ReturnToMenuBtn2.Size     = new Size(connMenuBtnSizeX, connMenuBtnSizeY);
            ReturnToMenuBtn2.Location = new Point(ReturnToMenuBtn2X, connMenuBtnY);
            ReturnToMenuBtn2.Text     = "Return to main menu";
            ReturnToMenuBtn2.TabIndex = 3;
            ReturnToMenuBtn2.TabStop  = false;
            ReturnToMenuBtn2.Visible  = false;
            ReturnToMenuBtn2.UseVisualStyleBackColor = true;
            ReturnToMenuBtn2.Click += new EventHandler(ReturnToMenuBtn_Click);
        }
예제 #4
0
        public Form1()
        {
            chessUILogic = new ChessUILogic(this);

            gameControls   = new GameControls(chessUILogic);
            connectionMenu = new ConnectionMenu(chessUILogic);
            gameMenu       = new GameMenu(chessUILogic);

            Controls.Add(gameControls);
            Controls.Add(connectionMenu);
            Controls.Add(gameMenu);

            InitializeComponent();
        }
예제 #5
0
        public RightBar(ChessUILogic chessUILogic)
        {
            UILogic           = chessUILogic;
            PlayerColourLabel = new Label();
            PlayerColourPict  = new PictureBox();
            CurColourLabel    = new Label();
            CurColourPict     = new PictureBox();
            CheckLabel        = new Label();

            PlayerColourLabel.AutoSize  = false;
            PlayerColourLabel.Name      = "PlayerColourLabel";
            PlayerColourLabel.Text      = "You:";
            PlayerColourLabel.Font      = new Font(PlayerColourLabel.Font.FontFamily, 10);
            PlayerColourLabel.Location  = new Point(rightColumnX, rightcolumnStartY);
            PlayerColourLabel.Size      = new Size(125, 20);
            PlayerColourLabel.TextAlign = ContentAlignment.MiddleCenter;
            PlayerColourLabel.Visible   = false;

            PlayerColourPict.Location = new Point(rightColumnX, rightcolumnStartY + PlayerColourLabel.Height + rightColumnGap);
            PlayerColourPict.Name     = "PlayerColourPict";
            PlayerColourPict.Size     = new Size(125, 125);
            PlayerColourPict.SizeMode = PictureBoxSizeMode.StretchImage;
            PlayerColourPict.Visible  = false;

            CurColourLabel.AutoSize  = false;
            CurColourLabel.Name      = "CurColourLabel";
            CurColourLabel.Text      = "Whose move:";
            CurColourLabel.Font      = new Font(CurColourLabel.Font.FontFamily, 10);
            CurColourLabel.Location  = new Point(rightColumnX, PlayerColourPict.Location.Y + PlayerColourPict.Height + rightColumnGap);
            CurColourLabel.Size      = new Size(125, 20);
            CurColourLabel.TextAlign = ContentAlignment.MiddleCenter;
            CurColourLabel.Visible   = false;

            CurColourPict.Location = new Point(rightColumnX, CurColourLabel.Location.Y + CurColourLabel.Height + rightColumnGap);
            CurColourPict.Name     = "CurColourPict";
            CurColourPict.Size     = new Size(125, 125);
            CurColourPict.SizeMode = PictureBoxSizeMode.StretchImage;
            CurColourPict.Visible  = false;

            CheckLabel.AutoSize  = false;
            CheckLabel.Name      = "CheckLabel";
            CheckLabel.Text      = "Check";
            CheckLabel.Font      = new Font(CheckLabel.Font.FontFamily, 20);
            CheckLabel.Location  = new Point(rightColumnX, CurColourPict.Location.Y + CurColourPict.Height + rightColumnGap);
            CheckLabel.Size      = new Size(125, 40);
            CheckLabel.TextAlign = ContentAlignment.MiddleCenter;
            CheckLabel.Visible   = false;
        }
예제 #6
0
        public GameMenu(ChessUILogic chessUILogic)
        {
            UILogic = chessUILogic;
            Menu    = new Button[2];

            for (int i = 0; i < 2; i++)
            {
                Menu[i] = new Button
                {
                    Location = new Point(mainMenuStartX, mainMenuStartY + (mainMenuBtnYSize + mainMenuBtnGap) * i),
                    Name     = "mainMenu" + i.ToString(),
                    Size     = new Size(mainMenuBtnXSize, mainMenuBtnYSize),
                    TabIndex = i,
                    TabStop  = false,
                    Visible  = true,
                    UseVisualStyleBackColor = true
                };
            }
            Menu[0].Text   = "New Game";
            Menu[1].Text   = "Connect";
            Menu[0].Click += new EventHandler(CreateNewGameBtn_Click);
            Menu[1].Click += new EventHandler(ConnectGameBtn_Click);
        }
예제 #7
0
        public PlayingField(ChessUILogic chessUILogic)
        {
            UILogic = chessUILogic;

            field = new FieldSquare[8, 8];

            for (int i = 0; i < 8; i++)
            {
                for (int j = 0; j < 8; j++)
                {
                    field[i, j] = new FieldSquare();
                }
            }

            for (int i = 0; i < 8; i++)
            {
                for (int j = 0; j < 8; j++)
                {
                    field[i, j].Figure.Location = new Point(startX + i * (figureSize + figuresGap), startY + j * (figureSize + figuresGap));
                    field[i, j].Figure.Name     = "field" + i.ToString() + j.ToString();
                    field[i, j].Figure.Size     = new Size(figureSize, figureSize);
                    field[i, j].Figure.TabIndex = i * 8 + j;
                    field[i, j].Figure.TabStop  = false;
                    field[i, j].Figure.Tag      = i * 8 + j;
                    field[i, j].Figure.Click   += new EventHandler(PlayingField_Click);
                    field[i, j].Figure.Visible  = false;
                    field[i, j].Figure.SizeMode = PictureBoxSizeMode.StretchImage;
                    field[i, j].Figure.Margin   = new Padding(0, 0, 0, 0);


                    field[i, j].TopBacklight.Location = new Point(startX + i * (figureSize + figuresGap) - halfFiguresGap, startY + j * (figureSize + figuresGap) - halfFiguresGap);
                    field[i, j].TopBacklight.Name     = "fieldTopBacklight" + i.ToString() + j.ToString();
                    field[i, j].TopBacklight.Size     = new Size((figureSize + figuresGap), halfFiguresGap);
                    field[i, j].TopBacklight.TabIndex = 0;
                    field[i, j].TopBacklight.TabStop  = false;
                    field[j, i].TopBacklight.Image    = global::ChessUI.Properties.Resources.bhorizontalbacklight;
                    field[i, j].TopBacklight.SizeMode = PictureBoxSizeMode.StretchImage;
                    field[i, j].TopBacklight.Visible  = false;
                    field[i, j].TopBacklight.Margin   = new Padding(0, 0, 0, 0);


                    field[i, j].BottomBacklight.Location = new Point(startX + i * (figureSize + figuresGap) - halfFiguresGap, startY + (j + 1) * (figureSize + figuresGap) - figuresGap);
                    field[i, j].BottomBacklight.Name     = "fieldBottomBacklight" + i.ToString() + j.ToString();
                    field[i, j].BottomBacklight.Size     = new Size((figureSize + figuresGap), halfFiguresGap);
                    field[i, j].BottomBacklight.TabIndex = 0;
                    field[i, j].BottomBacklight.TabStop  = false;
                    field[j, i].BottomBacklight.Image    = global::ChessUI.Properties.Resources.bhorizontalbacklight;
                    field[i, j].BottomBacklight.SizeMode = PictureBoxSizeMode.StretchImage;
                    field[i, j].BottomBacklight.Visible  = false;
                    field[i, j].BottomBacklight.Margin   = new Padding(0, 0, 0, 0);

                    field[i, j].LeftBacklight.Location = new Point(startX + i * (figureSize + figuresGap) - halfFiguresGap, startY + j * (figureSize + figuresGap));
                    field[i, j].LeftBacklight.Name     = "fieldLeftBacklight" + i.ToString() + j.ToString();
                    field[i, j].LeftBacklight.Size     = new Size(halfFiguresGap, figureSize);
                    field[i, j].LeftBacklight.TabIndex = 0;
                    field[i, j].LeftBacklight.TabStop  = false;
                    field[j, i].LeftBacklight.Image    = global::ChessUI.Properties.Resources.bverticalbacklight;
                    field[i, j].LeftBacklight.SizeMode = PictureBoxSizeMode.StretchImage;
                    field[i, j].LeftBacklight.Visible  = false;
                    field[i, j].LeftBacklight.Margin   = new Padding(0, 0, 0, 0);


                    field[i, j].RightBacklight.Location = new Point(startX + (i + 1) * (figureSize + figuresGap) - figuresGap, startY + j * (figureSize + figuresGap));
                    field[i, j].RightBacklight.Name     = "fieldRightBacklight" + i.ToString() + j.ToString();
                    field[i, j].RightBacklight.Size     = new Size(halfFiguresGap, figureSize);
                    field[i, j].RightBacklight.TabIndex = 0;
                    field[i, j].RightBacklight.TabStop  = false;
                    field[j, i].RightBacklight.Image    = global::ChessUI.Properties.Resources.bverticalbacklight;
                    field[i, j].RightBacklight.SizeMode = PictureBoxSizeMode.StretchImage;
                    field[i, j].RightBacklight.Visible  = false;
                    field[i, j].RightBacklight.Margin   = new Padding(0, 0, 0, 0);
                }
            }
        }