private void Evaluate_Gene_Click(object sender, EventArgs e) { if (!OnceEvaluation) { if (Learning.Next()) { System_Log.Items.Add("유전자 불러오기 성공"); Gene_Generator.Enabled = false; Evaluate_Generation.Enabled = false; Learning_heredity.Enabled = false; } else { System_Log.Items.Add("유전자 불러오기 실패"); return; } Control_Moving.Stop(); Program_Indicator.Stop(); label_Generation.Text = Learning.get_Current_Generation() + " 세대"; label_Serial.Text = Learning.get_Current_Serial() + "번 유전자"; game_Start(); UI_Drawer("가중치", heuristics.get_Weight(), label_Weight, false); Control_Moving.Start(); Program_Indicator.Start(); string message = "가중치 "; foreach (int n in Learning.get_Weight()) { message = message + n + " "; } message += "에 대한 평가 시작"; System_Log.Items.Add(message); OnceEvaluation = true; } else { Control_Moving.Stop(); Program_Indicator.Stop(); game_Start(); System_Log.Items.Add("평가를 취소했습니다. 이번 평가는 저장되지 않습니다."); Control_Moving.Stop(); Program_Indicator.Stop(); Evaluate_Generation.Enabled = true; Learning_heredity.Enabled = true; Gene_Generator.Enabled = true; OnceEvaluation = false; } }
private void Game_Click(object sender, EventArgs e) { if (OnOff == true) { Control_Moving.Stop(); Drawing_Map.Stop(); Program_Indicator.Stop(); OnOff = false; } else { Control_Moving.Start(); Drawing_Map.Start(); Program_Indicator.Start(); OnOff = true; } }
private void Heredity_Tick(object sender, EventArgs e) { /* 한 평가가 종료되고 그 평가의 점수를 기록 */ if (scoreWriting == true) { if (!OnceEvaluation && !evaluation && !lastEvaluation) { scoreWriting = false; return; } if (Learning.Save_Score(score)) { try { System_Log.Items.Add(score.ToString() + "점 기록 완료"); } catch (Exception error) { Console.WriteLine(error.Message); } } OnceEvaluation = false; //전체 유전자 평가 종료시 if (lastEvaluation) { Evaluate_Gene.Enabled = true; Learning_heredity.Enabled = true; Gene_Generator.Enabled = true; System_Log.Items.Add("한 세대 평가를 완료하였습니다."); lastEvaluation = false; clickListener = false; } //단일 유전자 평가 종료시 if (!evaluation) { Evaluate_Generation.Enabled = true; Learning_heredity.Enabled = true; Gene_Generator.Enabled = true; } if (heredityMode) { NextEvaluation = true; } //heredityMode = true; scoreWriting = false; } if (evaluation && heredityMode && NextEvaluation) { NextEvaluation = false; if (Learning.Next()) { System_Log.Items.Add("유전자 불러오기 성공"); Control_Moving.Stop(); Program_Indicator.Stop(); label_Generation.Text = Learning.get_Current_Generation() + " 세대"; label_Serial.Text = Learning.get_Current_Serial() + "번 유전자"; /*타이머 종료 조건*/ if (Learning.get_Current_Serial() == 99) { evaluation = false; lastEvaluation = true; } game_Start(); UI_Drawer("가중치", heuristics.get_Weight(), label_Weight, false); Control_Moving.Start(); Program_Indicator.Start(); string message = "가중치 "; foreach (int n in Learning.get_Weight()) { message = message + n + " "; } message += "에 대한 평가 시작"; System_Log.Items.Add(message); } else // 이 부분은 전체 세대 평가 기능 작동시에만 구동됩니다. { System_Log.Items.Add("유전자 불러오기 실패"); evaluation = false; Evaluate_Gene.Enabled = true; Learning_heredity.Enabled = true; Gene_Generator.Enabled = true; clickListener = false; } } }