0
我剛開始使用Akka(Java),我有一個問題,我不知道如何解決。Akka java - 同步兒童演員
我有N個玩家和一個oracle。 一旦創建,所有玩家必須與必須迴應「贏家/輸家」的預言者溝通。
的問題是,我不知道又將溝通的球員,整齊,一次一個策略:
例如:PLAYER1 - > player2 - > player3 - > PLAYER1 - >播放器2 - >。 ..
玩家等級:
public class MyPlayers extends UntypedActor {
/*
* I created one context of N Player
*/
public MyPlayers() { }
public void preStart() {
//in this way all N players at the beginning, start to communicate concurrently.
ActorSelection oracle = getContext().actorSelection("//Main/user/app/oracle");
oracle.tell(new MyMessage(myValue), getSelf());
}
@Override
public void onReceive(Object msg) throws Exception {
if (msg instanceof MyMessage) {
//do something
sender().tell(MyMessage, getSelf());
}
if (msg instanceof DoneMsg) {
if (((DoneMsg) msg).isDone()) {
log("Stop Players");
getContext().stop(getSelf());
}
}
}
甲骨文類:
public class Oracle extends UntypedActor {
private int nPlayers;
public Oracle(int nPlayers) {
this.nPlayers = nPlayers;
}
public void preStart() {
stateGame = false; //When the play starter, there is not any wins.
}
@Override
public void onReceive(Object msg) throws Exception {
if (msg instanceof MyMessage) {
if (!stateGame) {
//do something
sender().tell(MyMessage, getSelf());
}
else {
//do something
getContext().stop(getSelf());
}
}
}
什麼是溝通在玩家的最佳策略排除競爭有序嗎?
感謝所有。
這不是一個明確的問題,你想讓所有的演員同時收到信息嗎?或者你只是想知道通過它們循環併發送消息的最佳方式?如果是後者,我會考慮刪除這個問題。 – Snickers3192