Advertisement
Guest User

Untitled

a guest
Jan 21st, 2017
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Scala 0.81 KB | None | 0 0
  1. import akka.actor._
  2.  
  3.  
  4.   case class SetPartner(partner: ActorRef)
  5.   case class Ball(volley: Int)
  6.  
  7.   class Player extends Actor {
  8.  
  9.     var partner = context.self
  10.  
  11.     def receive = {
  12.  
  13.       case SetPartner(p: ActorRef) =>
  14.         partner = p
  15.  
  16.       case Ball(volley) =>
  17.         Thread.sleep(500)
  18.  
  19.         if (volley <= 0) {
  20.           println("Game over")
  21.           partner ! Ball(0)
  22.           context.stop(self)
  23.         } else {
  24.           println (self.path.name + ": " + volley)
  25.           partner ! Ball(volley-1)
  26.         }
  27.     }
  28.   }
  29.  
  30.   object hello extends App{
  31.     val system = ActorSystem("PingPongDemo")
  32.     val ping = system.actorOf(Props[Player], "Ping")
  33.     val pong = system.actorOf(Props[Player], "Pong")
  34.  
  35.     ping ! SetPartner(pong)
  36.     pong ! SetPartner(ping)
  37.  
  38.     pong ! Ball(10)
  39.   }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement