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); }
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; } }