Программирование на языке Ruby
На нашем литературном портале можно бесплатно читать книгу Программирование на языке Ruby, Фултон Хэл-- . Жанр: Программирование. Онлайн библиотека дает возможность прочитать весь текст и даже без регистрации и СМС подтверждения на нашем литературном портале bazaknig.info.
Название: Программирование на языке Ruby
Автор: Фултон Хэл
Дата добавления: 16 январь 2020
Количество просмотров: 525
Программирование на языке Ruby читать книгу онлайн
Программирование на языке Ruby - читать бесплатно онлайн , автор Фултон Хэл
Ruby — относительно новый объектно-ориентированный язык, разработанный Юкихиро Мацумото в 1995 году и позаимствовавший некоторые особенности у языков LISP, Smalltalk, Perl, CLU и других. Язык активно развивается и применяется в самых разных областях: от системного администрирования до разработки сложных динамических сайтов. Книга является полноценным руководством по Ruby — ее можно использовать и как учебник, и как справочник, и как сборник ответов на вопросы типа «как сделать то или иное в Ruby». В ней приведено свыше 400 примеров, разбитых по различным аспектам программирования, и к которым автор дает обстоятельные комментарии. Издание предназначено для программистов самого широкого круга и самой разной квалификации, желающих научиться качественно и профессионально работать на Ruby.
Внимание! Книга может содержать контент только для совершеннолетних. Для несовершеннолетних чтение данного контента СТРОГО ЗАПРЕЩЕНО! Если в книге присутствует наличие пропаганды ЛГБТ и другого, запрещенного контента - просьба написать на почту [email protected] для удаления материала
Перейти на страницу:
def other_move(who, move, num, board, sock)
move = sock.gets.chomp
puts "nПротивник: #{move}"
move
end
if ARGV[0]
myself = ARGV[0]
else
print "Ваше имя? "
myself = STDIN.gets.chomp
end
if ARGV[1]
opponent_id = ARGV[1]
else
print "Ваш противник? "
opponent_id = STDIN.gets.chomp
end
opponent = opponent_id.split(":")[0] # Удалить имя хоста.
# Обратиться к серверу
socket = TCPSocket.new(ChessServer, ChessServerPort)
response = nil
socket.puts "login # {myself} #{opponent_id}"
socket.flush
response = socket.gets.chomp
name, ipname, color = response.split ":"
color = color.to_i
if color == BLACK # Цвет фигур другого игрока,
puts "nУстанавливается соединение..."
server = TCPServer.new(PeerPort)
session = server.accept
str = nil
begin
timeout(30) do
str = session.gets.chomp
if str != "ready"
raise "Ошибка протокола: получено сообщение о готовности #{str}."
end
end
rescue TimeoutError
raise "He получено сообщение о готовности от противника."
end
puts "Ваш противник #{opponent}... у вас белые.n"
who = WHITE
move = nil
board = nil # В этом примере не используется.
num = 0
draw_board(board) # Нарисовать начальное положение для белых.
loop do
num += 1
move = my_move(who, move, num, board, session)
draw_board(board)
case move
when "resign"
puts "nВы сдались. #{opponent} выиграл."
break
when /Checkmate/
puts "nВы поставили мат #{opponent}!"
draw_board(board)
break
end
move = other_move(who, move, num, board, session)
draw_board(board)
case move
when "resign"
puts "n#{opponent} сдался... вы выиграли!"
break
when /Checkmate/
puts "n#{opponent} поставил вам мат."
break
end
end
else # Мы играем черными,
puts "nУстанавливается соединение..."
socket = TCPSocket.new(ipname, PeerPort)
socket.puts "ready"
puts "Ваш противник #{opponent}... у вас черные.n"
who = BLACK
move = nil
board = nil # В этом примере не используется.
num = 0
draw_board(board) # Нарисовать начальное положение.
loop do
num += 1
move = other_move(who, move, num, board, socket)
draw_board(board) # Нарисовать доску после хода белых,
case move
when "resign"
puts "n#{opponent} сдался... вы выиграли!"
break
when /Checkmate/
puts "n#{opponent} поставил вам мат."
break
end
move = my_move(who, move, num, board, socket)
draw_board(board)
case move
when "resign"
puts "nВы сдались. #{opponent} выиграл."
Перейти на страницу: