private void mnuSolveTo_Click(object sender, EventArgs e) { SelectResult frm = new SelectResult(); frm.TopMost = this.TopMost; frm.ShowDialog(); int select = frm.selected; if (select == -1) { return; } napde(); SDK a = new SDK(de); if (select > 10000) { lblwait.Visible = true; myStatus.Text = "Đang giải đề ... "; this.Enabled = false; } Application.DoEvents(); if (!a.SolveTo(select)) { if (select > 10000) { this.Enabled = true; lblwait.Visible = false; } MessageBox.Show("Bạn muốn xem nghiệm thứ " + select.ToString() + "\nNhưng Sudoku này có ít hơn " + select.ToString() + " nghiệm !\nHãy nhập vào số thích hợp.", "Không có nghiệm", MessageBoxButtons.OK, MessageBoxIcon.Information); myStatus.Text = "Giải đề không thành công"; Application.DoEvents(); return; } if (select > 10000) { this.Enabled = true; lblwait.Visible = false; } dapAn = select; for (int i = 1; i <= 81; i++) { text[i].Text = a.Result[i].ToString(); if (de[i] == 0) { text[i].BackColor = Color.White; text[i].ForeColor = Color.Black; } } myStatus.Text = "Đã giải đề thành công"; }
private void mnuSolveNext_Click(object sender, EventArgs e) { dapAn++; napde(); SDK a = new SDK(de); if (dapAn > 10000) { lblwait.Visible = true; this.Enabled = false; } Application.DoEvents(); if (!a.SolveTo(dapAn)) { if (dapAn > 10000) { lblwait.Visible = false;; this.Enabled = true;; } MessageBox.Show("Hết đáp án - Không tìm thấy đáp án tiếp theo !", "Không có nghiệm", MessageBoxButtons.OK, MessageBoxIcon.Information); dapAn--; return; } if (dapAn > 10000) { lblwait.Visible = false;; this.Enabled = true;; } for (int i = 1; i <= 81; i++) { text[i].Text = a.Result[i].ToString(); if (de[i] == 0) { text[i].BackColor = Color.White; text[i].ForeColor = Color.Black; } } }
private void mnuSolvePrevious_Click(object sender, EventArgs e) { switch (dapAn) { case 0: MessageBox.Show("Bạn chưa giải đề !", "Thông tin", MessageBoxButtons.OK, MessageBoxIcon.Information); break; case 1: MessageBox.Show("Đây là đáp án đầu tiên !", "Thông tin", MessageBoxButtons.OK, MessageBoxIcon.Information); break; default: dapAn--; napde(); SDK a = new SDK(de); if (dapAn > 10000) { lblwait.Visible = true;; this.Enabled = false; } a.SolveTo(dapAn); if (dapAn > 10000) { lblwait.Visible = false; this.Enabled = true; } for (int i = 1; i <= 81; i++) { text[i].Text = a.Result[i].ToString(); if (de[i] == 0) { text[i].BackColor = Color.White; text[i].ForeColor = Color.Black; } } break; } }