Advertisement
Guest User

Untitled

a guest
Jan 14th, 2018
49
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Scala 0.97 KB | None | 0 0
  1. import akka.actor._
  2. import scala.collection.mutable.ArrayBuffer
  3. import scala.util.Random
  4.  
  5. case class Ball(count: Int)
  6.  
  7. class Player(val num: Int, players: ArrayBuffer[ActorRef]) extends Actor {
  8.   val random = new Random()
  9.   override def receive = {
  10.     case Ball(counter) =>
  11.       var tmp = random.nextInt(players.length)
  12.       while (tmp == num)
  13.         tmp = Random.nextInt(players.length)
  14.       println("From " + num + " to " + tmp + "; throw ID: " + counter)
  15.       Thread.sleep(400)
  16.       players(tmp) ! Ball(counter + 1)
  17.     case _ =>
  18.       throw new Exception("unhandled msg")
  19.   }
  20. }
  21.  
  22. object BallGameTest extends App {
  23.   val system = ActorSystem("MySystem")
  24.   var players = ArrayBuffer[ActorRef]()
  25.   val player1 = system.actorOf(Props(classOf[Player], 0, players))
  26.   val player2 = system.actorOf(Props(classOf[Player], 1, players))
  27.   val player3 = system.actorOf(Props(classOf[Player], 2, players))
  28.   players += player1 += player2 += player3
  29.   player1 ! Ball(0)
  30. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement