특정 계획 엔터티를 변경할 수 없음을 어디에서 지정합니까?

StackOverflow https://stackoverflow.com/questions/8983258

  •  13-11-2019
  •  | 
  •  

문제

저는 (2X2) 스도쿠 게임을 만들고 있는데 다음을 해야 합니다. 완벽한 퍼즐.즉, 일부 숫자는 변경할 수 없습니다(다른 위치로 이동할 수 없음).

2X2 게임에는 16개가 있습니다. Digit에스.문제의 사실은 row에스, column모래 block(알았어?)그만큼 row 유일한 계획 변수입니다.

나는 지정했다 boolean fixed 속성으로 Digit.하지만 (사용자 가이드에 따르면) 이를 구현할 곳을 찾지 못했습니다.

실제로 일부 계획 엔터티를 불변으로 만드는 방법은 무엇입니까?


나는 다음과 같은 방법을 찾았습니다.

  1. 구현 moveFactory 그것은 row 불변인 경우에만.이 방법은 문서화되지 않음.
  2. 만약 row 은(는) fixed_row, 하드 제약 조건을 해제합니다.
  3. 사용 @ValueRangeFromPlanningProperty.불변 엔터티가 value_range 단일 요소이며 변경 가능한 엔터티에는 고정 행을 제외하는 목록이 있습니다.이것은 스도쿠 프로젝트보다 더 큰 프로젝트에서는 지속 가능하지 않은 것 같습니다. 그렇죠?그리고 솔버를 탈선시키는 (내?) 함정이 있습니까?

추가 질문:시간표 작성 문제(과목-교사를 가능한 기간에 할당)와 같은 경우 방법 #3이 권장되는 방법입니까?

도움이 되었습니까?

해결책

옵션 4 : 고정 자릿수는 문제점입니다. @planningentity 주석이없는 클래스의 인스턴스입니다. 비 고정형 숫자는 @planningentity가있는 클래스의 인스턴스입니다.

디자인 목적으로 동일한 클래스를 재사용하려면 다음을 수행하십시오.

  1. 사용자 정의 movefactory가 될 것입니다.사용자 정의 이동 팩토리 작성은 문서화되어 있습니다. 고정 된 자리를 변경하는 움직임을 제외 할 수있는 명령문을 추가하는 것이 중요합니다.
  2. 이 경우 빌드 인 하드 제약 조건이 아니라 정상적인 하드 제약 조건이 아니지만이 사용 사례에 대해서는 그렇지 않을 것입니다."빌드 인 하드 제약 조건"에 대한 수동 정보를 참조하십시오.
  3. overkill,하지만 그것은 일할 것입니다 :)

    옵션 5 : "Nofollow"> https://issues.jboss.org/browse/jbrules-3359./a>

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top