Class: RubySnake::Client

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

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.messageObject

Returns the value of attribute message.



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

def message
  @message
end

.receiveObject

Returns the value of attribute receive.



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

def receive
  @receive
end

Class Method Details

.connect(host = '127.0.0.1') ⇒ Object



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
40
# File 'lib/ruby_snake/client.rb', line 8

def connect(host='127.0.0.1')
  @message = '0'
  
  loop do
    sleep 0.1

    begin
      server = TCPSocket.new host, 2000 
    rescue => err
      @message = '10'
      break
    end

    server.send @message, 0
    server_message = server.recv(4096) 

    case server_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
      @receive = server_message.split(',').map(&:to_i).each_slice(2).to_a if server_message
    end
  end
end