저는 리소스 게임 시뮬레이션 프로젝트에 참여하고 있습니다. 내가해야 할 일은 ...자바 리소스 - 게임 시뮬레이션
"사용 가능한 충분한 리소스가있는 경우 요청이 충족되고 요청 된 수량이 사용 가능한 수량에서 뺍니다. 리소스가 충분하지 않으면 animat는 이용 가능한 양을 확보하고 더 많은 자원을 사용할 수있을 때까지 기다리십시오. "
문제는
예 ... 난 아직도 필요한 것을 어딘가 잡고 (대출 등)을 사용할 수있는 리소스가있는 경우를 줄일 다음 리소스를 줄이고 위해 ...이 가능하게 어떻게입니다 :
... 100 GOLD 필요하지만 .... ... 50 ... AVAILABLE GOLD
는 ... 50 GOLD을 줄이기 ... 및 금 전까지 기다리는> 다음 = 50... 줄이기 50 ...
등 ...
샘플 코드 ...
public void feedArmy(){
if(food>=100){
food=food-100;
System.out.println("*Feed Soldiers (-100 Food)");
System.out.println(toString());
}
else{
System.out.println("*Feed Soldiers (-100 Food)");
System.out.println("-Not Enough Food!"); //get loan instead
}
}
(후 편집) 지금 최적의 솔루션 : 사실
... 난 그냥에서 원하는 값을 감소 생각 나는 음의 값을 유지 나무 다음 수는 부정적인가는 경우는
Math.abs()와 긍정적으로 설정; 나무가 30이고 나는 100을 원하는 경우
그래서 ... 나는 30-100 = -70을; loan = -70; ...
그런 다음 I Math.abs (loan); 그래서 대출 = 70;
다음 내가 if(wood>loan){ wood=wood-loan}
가 // 내가 그것을 다시 새로 고쳐집니다 수면 전까지 나무를 둘 필요가 ... 그리고 그게 전부 수도 않아 ... 나는 아직도 그 생산자/소비자 물건이 ...
"자원이 사용 가능할 때까지 대기"라는 문장은 생산자 스레드와 소비자 스레드가 있음을 의미합니다. 생산자 - 소비자 동기화에 대한 자세한 설명은 특정 프로그래밍 문제에 대한 SO의 범위를 훨씬 뛰어 넘습니다. 멀티 스레드 프로그래밍 및 특히 "생산자 - 소비자"에 대한 자습서를 웹에서 검색하십시오. 또한 [FAQ] 및 [Ask]를 읽고 좋은 질문을 작성하는 방법을 더 잘 이해하십시오. –
@JimGarrison 이것이 범위를 벗어났다는 것에 대해서는 동의하지 않지만 단순한 게임 루프로 멀티 스레딩하지 않고도 이런 종류의 게임을 구현할 수 있습니다. –
SO 범위를 넘어서 ?? 그게 뭐야? – user2375278