보드에는 녹색과 녹색의 10 개의 행과 10 개의 열 버튼이 있습니다. 보드는 무작위로 9 개의 붉은 색 장애물을 생성합니다. 내 질문은 녹색 색상 버튼을 사용하여 수평 및 수직 방향으로 나가는 출구에서 시작하여 녹색 색상을 흰색으로 변경하는 경로를 찾는 방법입니다. 이동 버튼을 누르면 녹색 버튼이 흰색으로 바뀝니다. 프로그램은 한 번에 하나의 경로 만 찾습니다. 예를 들어 첫 번째 경로는 (2 (10) -1)을 실행 한 다음 Go 버튼을 다시 누르면 다른 경로를 찾습니다. 녹색 버튼이 모두 흰색으로 바뀔 때까지 계속됩니다. btn 1은 항목이고 btn 100은 종료입니다. 나는 click 이벤트를 ..... 사용합니까?C# 다른 버튼 색상 사이의 경로 찾기
for (int i = 1; i <= 99;)
{
string btn_name = "btn" + Convert.ToString(i+10);
var btn_now = this.Controls.Find(btn_name, true)[0];
btn_name = "btn" + Convert.ToString(i + 1);
var btn_next = this.Controls.Find(btn_name, true)[0];
var btn_below = btn_next;
if (i <= 10 || i == 20 || i == 30 || i == 40 || i == 50 || i == 60 || i == 70 || i == 80 || i == 90)
{
btn_name = "btn" + Convert.ToString(i);
btn_below = this.Controls.Find(btn_name, true)[0];
}
if(btn_next.BackColor == Color.GreenYellow) {
if (i <= 10 || i == 20 || i == 30 || i == 40 || i == 50 || i == 60 || i == 70 || i == 80 || i == 90)
i+= 1;
else
i++;
btn_now = btn_next;
}
else {
btn_now = btn_next;
i+=1;
}
btn_now.BackColor = Color.White;
}
나는 문제의 요점이 무엇처럼 ... 코드 뒤에 논리를 이해하는 데 << (전 = 10 || 내가 == 20 || 내가 == 30 ||를 <있다면 == 40 || i == 50 || i == 60 || i == 70 || i == 80 || i == 90) i + = 1; else i ++; >> (+ = 1과 i ++ 모두 똑같이 ... ...) – Innat3
경로 또는 최단 경로를 찾아야합니까? – iceDragon
아마 모든 가능한 경로를 평가하고 최저 비용으로 경로를 찾는 A * 검색 알고리즘을 살펴 보는 것이 가장 좋습니다. https://en.wikipedia.org/wiki/A*_search_algorithm#Example – lhildebrandt