コード例 #1
0
ファイル: Game.cs プロジェクト: nikitarudnev21/DragDrop
        async void Win()
        {
            animateWin();
            foreach (PictureBox pic in panelBoxes.Controls.OfType <PictureBox>())
            {
                pic.Visible = false;
            }
            List <Panel> panels = new List <Panel>()
            {
                panelTop, panelPicture, PanelContent
            };

            foreach (Control control in panels)
            {
                control.Visible = false;
            }
            timerActive = false;
            for (Opacity = 0.1; Opacity < 1; Opacity += 0.1)
            {
                await Task.Delay(40);

                Animations();
                await Task.Delay(40);
            }
            for (Opacity = 0.2; Opacity < 1; Opacity += 0.1)
            {
                await Task.Delay(60);

                Animations();
                await Task.Delay(60);
            }
            for (Opacity = 0.3; Opacity < 1; Opacity += 0.1)
            {
                await Task.Delay(80);

                Animations();
                await Task.Delay(80);
            }

            for (int i = 0; i <= 10; i++, await Task.Delay(120))
            {
                label4.Visible = label4.Visible == false ? true : false;
                await Task.Delay(120);

                label5.Visible = label5.Visible == false ? true : false;
                await Task.Delay(120);

                label6.Visible = label6.Visible == false ? true : false;
            }
            animateWin();
            label4.Visible = true;
            label5.Visible = true;
            label6.Visible = true;
            MaterialMessageBox.Res("Congratulations you won", "Congratulations!!!", MessageBoxButtons.OK);
            using (WebClient client = new WebClient())
            {
                client.DownloadFileAsync(
                    new Uri("https://rudnev19.thkit.ee/diplom.png"), folder + "\\diplom.png");
                //File.Move(folder+"\\diplom.png", Environment.SpecialFolder.Desktop+"\\diplom.png");
            }
            DialogResult result = MaterialMessageBox.Res("Do you want to play again?", "Again?", MessageBoxButtons.YesNo);

            if (result == DialogResult.Yes)
            {
                Again();
                foreach (PictureBox pic in panelBoxes.Controls.OfType <PictureBox>())
                {
                    pic.Visible = true;
                }
                foreach (Control control in panels)
                {
                    control.Visible = true;
                }
            }
            else
            {
                Close();
            }

            /*    int cc = 0;
             *  string path = folder + "\\" + "records.txt";
             *  var list = new List<char>();
             *  var liststr = new List<string>();
             *  using (StreamWriter stream = new StreamWriter(path, true, Encoding.UTF8))
             *  {
             *      stream.Write("\n" + "----------------------" + "\n"
             + $"Игрок {cc}" + "\n" +
             +          "Ходы:" + lblMoves.Text + "\n" +
             +          "Минуты:" + lblMinute.Text + "\n" +
             +          "Секунды:" + lblSecond.Text + "\n" +
             +          "Миллисекунды:" + lblMili.Text + "\n"
             + "----------------------" + "\n");
             +  }
             +  liststr.Add(File.ReadAllText(path));
             +  cc= liststr.Where(x => x.Contains("1")).Count();
             +  list.AddRange(File.ReadAllText(path));
             +  File.ReadAllLines(path);
             +  cc = list.Count;
             +  MessageBox.Show(cc.ToString() + path + "\n" + File.ReadAllText(path));*/
            //   file.AddRange(reader.ReadToEnd().Where(x =>x.ToString().StartsWith("Игрок")));
            //   int s = list.Contains("Игрок").ToString().Count();

            //  MessageBox.Show(string.Join(Environment.NewLine, reader.ReadToEnd().Where(x => x.ToString().StartsWith("Игрок"))));
        }
コード例 #2
0
ファイル: Game.cs プロジェクト: nikitarudnev21/DragDrop
        public async void Form1_Load(object sender, EventArgs e)
        {
            this.LoadAnimation();
            lblMain.Visible = false;
            await Task.Delay(1100);

            lblMain.AnimateText();
            lblMain.Visible = true;
            foreach (PictureBox pictureBox in panelBoxes.Controls.OfType <PictureBox>())
            {
                pictureBox.DragEnter += (s, a) =>
                {
                    if (started)
                    {
                        for (points = 10; points > 2; points--)
                        {
                            penGreen.DashPattern = new float[] { 2, points };
                            penRed.DashPattern   = new float[] { 2, points };
                            var lastimage = picdragleaveenter.Last();
                            lastimage.CreateGraphics().DrawRectangle(penRed, 1, 1, lastimage.Width - 2, lastimage.Height - 2);
                            pictureBox.CreateGraphics().DrawRectangle(penGreen, 1, 1, pictureBox.Width - 2, pictureBox.Height - 2);
                        }
                        dragreturn.Add(pictureBox.Image);
                        a.Effect = a.AllowedEffect;
                    }
                    else
                    {
                        MBox();
                    }
                };

                pictureBox.DragLeave += (s, a) =>
                {
                    if (started)
                    {
                        pictureBox.Image = dragreturn.Last();
                        dragreturn.Clear();
                    }
                };

                pictureBox.MouseDown += (s, a) =>
                {
                    if (started)
                    {
                        imageget.Add(pictureBox.Image);
                        picdraglist.Add(pictureBox);
                        picdragleaveenter.Add(pictureBox);
                        moveBackBox1.Add(pictureBox);
                        pictureBox.DoDragDrop(imageget.Last(), DragDropEffects.Move);
                    }
                    else
                    {
                        MBox();
                    }
                };

                pictureBox.DragDrop += async(s, a) =>
                {
                    if (started)
                    {
                        imageswap.Add(pictureBox.Image);
                        moveBackImg2.Add(pictureBox.Image);
                        picdragdrop.Add(pictureBox);
                        picdraglist.Last().Image = imageswap.Last();
                        foreach (PictureBox boxS in picdragdrop)
                        {
                            if (s == boxS)
                            {
                                boxS.Image = imageget.Last();
                                if (boxS.Image != imageswap.Last())
                                {
                                    movesPlus();
                                    checkMoveBack();
                                    checkMoveForward();
                                    moveBackBox2.Add(boxS);
                                    moveBackImg1.Add(boxS.Image);
                                    List <PictureBox> list = new List <PictureBox>();
                                    for (int i = 0; i <= 35; i++)
                                    {
                                        list.AddRange(listBoxright.Where(x => listBoxright[i].Image == listright[i] && x.Image == boxS.Image && x == boxS));
                                    }
                                    ProgBar.Value = list.Count;
                                    if (list.Count == 36)
                                    {
                                        await Task.Delay(100);

                                        Win();
                                    }
                                    list.Clear();
                                }
                            }
                            else
                            {
                                pictureBox.Image = dragreturn.Last();
                                dragreturn.Clear();
                            }
                        }
                        imageget.Clear();
                        imageswap.Clear();
                        picdragdrop.Clear();
                    }
                };
            }
            checkMoveBack();

            btnLeft.Click += (s, a) =>
            {
                moveBackBox1.Last().Image = moveBackImg1.Last();
                moveBackBox2.Last().Image = moveBackImg2.Last();
                moveForwardBox1.Add(moveBackBox1.Last());
                moveForwardBox2.Add(moveBackBox2.Last());
                moveForwardImg1.Add(moveBackImg1.Last());
                moveForwardImg2.Add(moveBackImg2.Last());
                moveBackImg1.Remove(moveBackImg1.Last());
                moveBackImg2.Remove(moveBackImg2.Last());
                moveBackBox1.Remove(moveBackBox1.Last());
                moveBackBox2.Remove(moveBackBox2.Last());
                movesMinus();
                backMove++;
                checkMoveForward();
                checkMoveBack();
            };

            btnRight.Click += (s, a) =>
            {
                if (backMove > 0)
                {
                    moveForwardBox1.Last().Image = moveForwardImg1.Last();
                    moveForwardBox2.Last().Image = moveForwardImg2.Last();
                    moveForwardImg1.Remove(moveForwardImg1.Last());
                    moveForwardImg2.Remove(moveForwardImg2.Last());
                    moveForwardBox1.Remove(moveForwardBox1.Last());
                    moveForwardBox2.Remove(moveForwardBox2.Last());
                    movesPlus();
                }
                backMove--;
                checkMoveForward();
            };

            btnStart.Click += (s, a) =>
            {
                timerActive      = true;
                btnPause.Enabled = true;
                btnAgain.Enabled = true;
                started          = true;
                btnStart.Enabled = false;
            };

            btnPause.Click += (s, a) =>
            {
                timerActive = timerActive == false ? true : false;
                if (btnPause.Text == "Pause")
                {
                    started           = false;
                    btnPause.Size     = new Size(140, 43);
                    btnPause.Location = new Point(885, 14);
                    btnPause.Text     = "Unpause";
                }
                else
                {
                    started           = true;
                    btnPause.Size     = new Size(122, 43);
                    btnPause.Location = new Point(902, 14);
                    btnPause.Text     = "Pause";
                }
            };

            btnAgain.Click += (s, a) =>
            {
                timerActive = false;
                Opacity     = 0.85;
                DialogResult dialogResult = MaterialMessageBox.Res("Are you really want to try again?", "Again", MessageBoxButtons.YesNo);
                if (dialogResult == DialogResult.Yes)
                {
                    Again();
                }
                else if (dialogResult == DialogResult.No && !btnStart.Enabled && btnPause.Text == "Pause")
                {
                    timerActive = true;
                }
                Opacity = 1;
            };

            btnExit.Click += (s, a) =>
            {
                Opacity     = 0.85;
                timerActive = false;
                DialogResult dialogResult = MaterialMessageBox.Res("Are you really want to exit?", "Exit", MessageBoxButtons.YesNo);
                if (dialogResult == DialogResult.Yes)
                {
                    this.Close();
                }
                else if (dialogResult == DialogResult.No && !btnStart.Enabled && btnPause.Text == "Pause")
                {
                    timerActive = true;
                    Opacity     = 1;
                }
                else
                {
                    Opacity = 1;
                }
            };

            timer1.Tick += (s, a) =>
            {
                if (timerActive)
                {
                    timeCS += 1.5;
                    if (timeCS >= 100)
                    {
                        timeSec++;
                        timeCS = 0;
                        if (timeSec >= 60)
                        {
                            timeMin++;
                            timeSec = 0;
                        }
                    }
                    lblMinute.Text = String.Format("{0:00}", timeMin);
                    lblSecond.Text = String.Format("{0:00}", timeSec);
                    lblMili.Text   = String.Format("{0:00}", timeCS);
                }
            };
        }
コード例 #3
0
ファイル: Game.cs プロジェクト: nikitarudnev21/DragDrop
 void MBox()
 {
     MaterialMessageBox.Res("Please start or unpause the game", "Start", MessageBoxButtons.OK);
 }