Class: RubySnake::Server

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

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.foodObject

Returns the value of attribute food.



6
7
8
# File 'lib/ruby_snake/server.rb', line 6

def food
  @food
end

.messageObject

Returns the value of attribute message.



6
7
8
# File 'lib/ruby_snake/server.rb', line 6

def message
  @message
end

.snakeObject

Returns the value of attribute snake.



6
7
8
# File 'lib/ruby_snake/server.rb', line 6

def snake
  @snake
end

Class Method Details

.startObject



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/ruby_snake/server.rb', line 8

def start
  @message = '0'

  server = TCPServer.new 2000
  loop do
    client = server.accept
    if client
      client_message = client.recv(4096)
      client.send @message, 0

      case client_message
      when '0'
        @message = '1'
      when '1'
        @message = ([Game.snake.food] + Game.snake.body).join(',').to_s if Game.snake
      when '2'
        Game.win
        break
      when '3'
        Game.lose
        break
      else
        @message = ([Game.snake.food] + Game.snake.body).join(',').to_s if Game.snake
        array = client_message.split(',').map(&:to_i).each_slice(2).to_a if client_message
        if array
          @food = array.shift
          @snake = array
        end
      end
    end
  end
end