Пример #1
0
        private void AddLevels()
        {
            bool canDo = true;
            int  h = 18, w = 18;

            for (int i = 0; i < game.LevelCount; i++)
            {
                LvInfo lv  = LstLv[i];
                Label  lbl = lbls[i];
                lbl.BorderStyle = BorderStyle.FixedSingle;
                lbl.Location    = new Point(w, h);
                h            += 24;
                lbl.Size      = new Size(240, 16);
                lbl.TextAlign = ContentAlignment.MiddleLeft;
                lbl.Tag       = i + 1;
                lbl.Click    += lbl_Click;
                lbl.Text      = lv.ToLabelString();
                lbl.Cursor    = Cursors.Hand;

                if (!lv.Empty)
                {
                    canDo = true;
                }
                else
                {
                    lbl.ForeColor = Color.Red;
                    if (canDo)
                    {
                        canDo = false;
                    }
                    else
                    {
                        lbl.Cursor  = Cursors.Arrow;
                        lbl.Enabled = false;
                    }
                }
                this.pnlLevels.Controls.Add(lbl);
                lbls[i] = lbl;
            }
            Label lbd = new Label();

            lbd.Text     = " ";
            lbd.Location = new Point(w, h - 12);
            this.pnlLevels.Controls.Add(lbd);
        }
Пример #2
0
        private int GetUserInfo()
        {
            int          level = 1;
            StreamReader sr    = new StreamReader(File.Open(userFile, FileMode.OpenOrCreate));

            while (!sr.EndOfStream)
            {
                string s = sr.ReadLine();
                if (!string.IsNullOrEmpty(s))
                {
                    LvInfo li = new LvInfo(s);
                    LstLv[li.LvId - 1] = li;
                    level = li.LvId;
                }
            }
            sr.Close();
            return(level);
        }
Пример #3
0
        private void game_Finished(object sender, FinishArgs e)
        {
            tmr.Stop();
            if (!e.IsAuto)
            {
                LvInfo li = LstLv[curLv - 1];
                if (li.Empty || li.Step > game.Step)
                {
                    MessageBox.Show(this, "找到了更优解。");
                    li.SetInfo(game.Step, timeCount, DateTime.Now);
                    lbls[curLv - 1].Text      = li.ToLabelString();
                    lbls[curLv - 1].ForeColor = Color.Black;
                }

                if (lbls.Count > curLv)
                {
                    MessageBox.Show(this, "恭喜通过关卡,点击确定进入下一关。");
                    if (!lbls[curLv].Enabled)
                    {
                        lbls[curLv].Enabled = true;
                        if (curLv > maxCanLv)
                        {
                            maxCanLv = curLv;
                        }
                    }

                    curLv++;
                }
                else
                {
                    MessageBox.Show(this, "恭喜,你已经全部通关。");
                }

                SaveUserInfo();

                game.LoadLevel(curLv);
                Init();
                pnlLevels.Visible = false;
                panel1.Visible    = panel2.Visible = false;
            }
        }