2013-07-30 2 views
1

사용자가 영원히 버튼을 클릭 해제 할 때마다 프로 시저를 실행하고 싶습니다.영원히 버튼이 멈 추면 절차를 실행 하시겠습니까?

특히, 나는 사용자가 (모델 라이브러리 코드 예제 방법을 사용하여) 거북이의 세트를 선택할 수 있도록 영원히 버튼을 사용하고 있습니다. 세트가 선택되면 세트에 대해 계산 된 통계를 출력 창에 쓰고 싶습니다. (버튼 프로 시저 내에서이 정보를 표시 할 수 있지만 계속 업데이트됩니다. 추한 것입니다.) 모니터 요소는 하나의 숫자를 표시하고 싶지만 임의의 수의 값을 표시 할 수 있어야합니다. - 선택한 거북이 집합의 각 하위 집합에 대해 하나씩. 현재 통계가 표시되는 별도의 단추가 있지만 자동으로 실행하게합니다. 그것은 forever'ed 과정에서 존재의 프로 시저를 실행 할 수 없습니다 경우

, 당신이 제안 다른 해결책이있다?

감사합니다.

+0

특정 틱 수를 초과하면 호출되는 버튼에 다른 함수를 추가하는 것도 고려해 볼 수 있습니다. 예를 들어 'Go'(영원히) 버튼은 Go와 같은 함수를 호출하는 데 사용할 수 있습니다. if ticks> = X [Calculate_statistics]. 그런 식으로 단추를 누를 때마다 if 문을 실행하지만 모델이 X보다 오래 실행 된 경우에만 통계를 수행합니다 – Jesse001

답변

2

NetLogo에는 "종료시"절차가 없으며 이와 유사한 것도 없습니다.

이 제한 사항을 감안할 때 귀하의 문제에 접근하는 방법은 "영원히"절차가 끝나면 통계 표시를 유지하면서 업데이트가 필요할 경우에만 표시하는 것입니다 (즉, 변경된 사항이있는 경우) . 각 업데이트 전에 clear-output으로 전화하면 "다중 회선 모니터"와 비슷한 것을 얻을 수 있습니다.

+0

감사합니다. Nicolas. 그것은 그 일을합니다. – Mars

관련 문제