Exemple #1
0
        public void Played(Button button, Button buttonRestart,
                           Label labelName, Label labelScore, Label labelLost,
                           TextBox box
                           )
        {
            Controls.Add(button);
            Controls.Add(labelName);
            Controls.Add(labelScore);
            Controls.Add(box);

            var timer = new Timer();

            this.KeyDown += (sender, args) =>
            {
                switch (args.KeyCode)
                {
                case Keys.Down:
                    timer.Interval = 50;
                    break;

                case Keys.Up:
                    if (Checked.CheckPossibilityRotare(figure, map))
                    {
                        ResetCells();
                        figure.Rotate();
                        Combine();
                        Invalidate();
                    }
                    break;

                case Keys.Right:
                    if (Checked.CheckMovePossibility(1, figure, map))
                    {
                        ResetCells();
                        figure.MoveRight();
                        Combine();
                        Invalidate();
                    }
                    break;

                case Keys.Left:
                    if (Checked.CheckMovePossibility(-1, figure, map))
                    {
                        ResetCells();
                        figure.MoveLeft();
                        Combine();
                        Invalidate();
                    }
                    break;
                }
            };
            CreateSpeed(timer);



            button.Click += (sender, args) =>
            {
                var sw = new StreamWriter(@"G:\C# game\Game\Game\Рекорды.txt", true);
                sw.Write(box.Text);
                Controls.Remove(button);
                Controls.Remove(box);
                Controls.Remove(labelName);
                timer.Tick += (senderT, argsT) =>
                {
                    ResetCells();
                    if (Checked.CheckFallPossibility(figure, map))
                    {
                        figure.MoveDown();
                    }
                    else
                    {
                        Combine();
                        DeleteCompletedLine(labelScore);
                        CreateSpeed(timer);
                        figure.GetNextFigure(3, 0);
                        if (!Checked.CheckFallPossibility(figure, map))
                        {
                            timer.Stop();
                            sw.WriteLine(": " + labelScore.Text);
                            sw.Close();
                            Controls.Add(labelLost);
                            Controls.Add(buttonRestart);
                            buttonRestart.Click += (senderB, argB) =>
                            {
                                Application.Restart();
                            };
                        }
                    }
                    Combine();
                    Invalidate();
                };
            };
            timer.Start();
            Invalidate();
        }