>웹 프론트엔드 >JS 튜토리얼 >Javascript_javascript 기술로 구현된 스도쿠 문제 해결 알고리즘의 웹 페이지 예

Javascript_javascript 기술로 구현된 스도쿠 문제 해결 알고리즘의 웹 페이지 예

WBOY
WBOY원래의
2016-05-16 17:19:561544검색

1) 질문을 받으면 먼저 이미 알고 있는 조건을 바탕으로 데이터에 대한 사전 정렬 및 분석을 진행합니다.

9개의 정사각형 그리드에 '결정된 항목'을 모두 채우고 '가능한 옵션'을 표시하는 것과 같습니다.

refreshStat() 함수

2) 그 후, 생각은 추측/검증 주기 단계에 들어갑니다.

9개의 정사각형 그리드에서 '가능한 옵션'을 시도하여 기존 조건을 위반하는지 확인할 수 있습니다.

모든 새로운 브랜치의 최종 결과는 답변/오류 2개에 지나지 않습니다.

코드 복사 코드는 다음과 같습니다.
While (true) {
var a = setone ();
var b=refreshStat();
if(!a||b){ //a==false 또는 b==ture인 경우 루프에서 벗어날 수 있습니다
break;
}
     }

인간 두뇌의 실제 사고 과정에도 먼저 더 적은 옵션이 있는 분기를 순회하는 작업이 포함됩니다.
그래서 프로그램 구현도 포인트/2브랜치/3브랜치/....

3) 모든 경로를 검색했을 때 답이 유일한 것이 아니므로 스도쿠 게임의 목적에 어긋납니다.

다음 부분은 읽기의 편의를 위해 전체 코드입니다. 디버깅 정보는 삭제하지 않았습니다.

코드 복사 코드는 다음과 같습니다.


 
  数独解题程序

  <script><br>   function keygo(evt,obj){<br>       key = window .event?evt.keyCode:evt.which;<br>       var next=obj.tabIndex ;<br>       var inputs=document.getElementsByTagName("input");<br>       if (key==38){//↑<br>           if (next -9>=0 ) {<br>               inputs[next-9].select()<br>           }<br>       }<br>       if (key==40){//↓<br>           if (next +9<81 ) {<BR> inputs[next+9].select()<BR> }<BR> }<BR> if (key==37){//←<BR> if (next -1>=0 ) {<br>               inputs[next-1].select()<br>           }<br>       }<br>       if (key==39){//→<br>           if(next+1<81)inputs[next+1].select();<BR> }<BR> }<BR> </script>
 





可以文本拷贝到下框中后点粘贴,从左到右从上往下的81个数字序列,未填为0,中间非数字字符将忽略