Class: MazeServer

Inherits:
Object
  • Object
show all
Defined in:
lib/maze/server/maze_server.rb

Instance Method Summary collapse

Constructor Details

#initialize(hostname = 'localhost', port = 9999, number_of_players = 1) ⇒ MazeServer

Returns a new instance of MazeServer.



9
10
11
12
13
14
# File 'lib/maze/server/maze_server.rb', line 9

def initialize(hostname = 'localhost', port = 9999, number_of_players = 1)
  @hostname = hostname
  @port = port
  @players = Hash.new
  @number_of_players = number_of_players
end

Instance Method Details

#playersObject



35
36
37
# File 'lib/maze/server/maze_server.rb', line 35

def players
  @players
end

#startObject



16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/maze/server/maze_server.rb', line 16

def start
  puts "start server on port #{@port} with hostname #{@hostname}"
  connected_player = 0
  server = TCPServer.open(@hostname, @port)
  while connected_player < @number_of_players
    connected_player += 1
    puts 'wait for player'
    socket = server.accept
    socket.puts('{"operation" : "PLAYER_NAME", "messageId": 1, "type": "REQUEST"}')
    player_name = JSON.parse(socket.gets.chop)['playerName']
    @players[connected_player] = Client.new(player_name, socket, connected_player)
    puts "player #{player_name} connected"
  end
  puts 'all player are connected'
  puts 'start game'
  @maze_game = MazeGame.new(@players)
  @maze_game.print_current_maze
end

#start_gameObject



39
40
41
42
43
44
45
# File 'lib/maze/server/maze_server.rb', line 39

def start_game
  until @maze_game.all_players_reached_exit?
    do_moves
  end
  puts @maze_game.moves
  confirm_clients
end