/// <summary> /// 시간표의 생성 경우의 수를 보여줍니다. /// </summary> private void EstimateCountOfResult() { // 시간표 생성 TimeTableGenerator generator = new TimeTableGenerator(); if (subject_group.Count > 1) { lCount.Invoke(new Action(() => lCount.Text = "산출중...")); generator.StartCreate(subject_group, !cbContinuity.Checked); lCount.Invoke(new Action(() => lCount.Text = generator.GetResultCount().ToString())); } }
private void bStart_Click(object sender, EventArgs e) { PushUndo(); // 웹강의 삭제 List <ListViewItem> lvil = new List <ListViewItem>(getLviArray()); for (int i = 0; i < lvil.Count;) { if (TimeParser.Get(lvil[i].SubItems[8].Text).te.Count == 0) { DelInIndex(lvil[i].SubItems[0].Text); lvil.RemoveAt(i); } else { i++; } } lvSearch.Items.Clear(); lvSearch.Items.AddRange(lvil.ToArray()); // 시간표 생성 TimeTableGenerator generator = new TimeTableGenerator(); if (subject_group.Count > 1) { // 시간표 테스트 샘플을 크기에 대한 내림차순으로 정렬합니다. // 이 정렬을 통해 더 고른 샘플을 추출할 수 있습니다. subject_group.Sort((v1, v2) => v2.Count.CompareTo(v1.Count)); generator.StartCreate(subject_group, !cbContinuity.Checked); } System.IO.File.WriteAllText(AppDomain.CurrentDomain.BaseDirectory + @"combinations.txt", generator.GetResult()); MessageBox.Show("생성완료!\n생성횟수: " + generator.GetResultCount(), Version.Name, MessageBoxButtons.OK, MessageBoxIcon.Information); (new frmTTViewer(bot.subject)).Show(); }