Пытаясь изучить как scala, так и akka, я пишу игру Battleship. На самом деле я еще не начал писать код, я просто думаю о том, как все будет работать.
У меня есть агенты для кораблей и флотов игроков, а также такие сообщения, как «выстрел», «попадание», «промах», «все корабли уничтожены». Мой первый камень преткновения заключается в том, что когда игрок 1 стреляет, это создает взрыв событий, и игрок 2 должен ждать, пока все не уляжется, прежде чем он сможет сыграть свой ход. Как я могу убедиться в этом? Я подумал, может быть, я всегда буду отправлять ответ, несмотря ни на что, а затем считать, что отправитель получает ровно столько ответов, сколько отправлено сообщений. Может быть Морской бой не лучшее приложение для агентов.
Это также ставит вопрос о том, как определить разницу между отсутствием ответа, потому что сообщение еще не было обработано, агент ничего не ответил или агент умер. Но я оставлю это на потом.