require "tk" # підключити бібліотеку tk require "gtk3" # підключити бібліотеку gtk+ require 'ruby2d' # підключити бібліотеку ruby2d b = Gtk::Builder.new(:file => "miner.glade") # створити об'єкт Gtk::Builder і завантажити файл miner.glade у форматі xml створеного інтерфейсу w = b.get_object("window1") # створити вікно на основі опису об'єкта window1 з файлу miner.glade w.signal_connect("destroy"){Gtk.main_quit} # сторити обробник події закриття w для коректного завершення роботи програми w.show() # відобразити об'єкт w на екрані монітора b.get_object("button1").signal_connect("clicked"){ # обробник події натискання кнопки об'єкта b n = b.get_object("entry1").text.to_i # зчитування у змінну n цілого значення з поля введення entry1 Tk.messageBox ({ # виведення вікна повідомлення 'icon' =>'error', # символічне зображення помилки 'message'=>'Щось негаразд', # текст повідомлення 'title' =>'Гра «Сапер»', # заголовок вікна 'type' =>'ok' # тип кнопки }) a = Array.new(n){|j| Array.new(n) {|k| 0}} # створення 2-вимірного списку n k = rand(0..n) # випадкове ціле число у діапазоні [0..n) set title:"Гра «Сапер»", # задання параметрів вікна, створеного за допомогою ruby2d background:'#008000', width: 99, height: 99 Line.new(x1:1, y1:2, x2:3, y2:4, width: 5, z:0, color:'gray') # проведення відрізка прямої з кінцями (1,2) і (3,4) ширини 5 сірого кольору on :mouse_down do |e| # обробник події натискання лівої кнопки миші k = e.x # абсциса вказівника миші j = e.y # ординати вказівника миші sf = "/usr/share/fonts/truetype/ubuntu/Ubuntu-B.ttf" # шлях до шрифту Square.new(x: 1, y: 2, size: 3, color:'white') # малювання білого квадрата зі стороною 3 з координатами (1,2) верхнього лівого кута Text.new("!", x: 1, y: 2, size:24, font: sf, color: 'red') # виведення "!" з координатами (1,2) верхнього лівого кута шрифтом розміру 24 з гарнітурою, шлях до якої sf t = Time.now # примусове завершення виконання програми через 2 секунди після досягнення даної частини коду update do if Time.now - t > 2 then exit end end end show # показ вікна, з ігровим полем } Gtk.main # запуск програми