using System; using Cairo; using Gdk; using Gtk; class Area : DrawingArea { // # 3 Властивості класу області малювання public int h = 38, // відстань від області малювання до верхньої частини екрану w = 30, // довжина сторони клітини ігрового поля w1 = 2, // ширина обмежувальної лінії nx = 0, // кількість стовпчиків - клітин по горизонталі ny = 10, // кількість рядків - клітин по вертикалі nxy, // кількість усіх клітин поля гри m = 10, // відсоток або кількість мін n, // кількість невідкритих клітин без мін j, // номер рядка k, // номер стовпчика j0, // номер стовпчика клітини з підірваною міною k0, // номер рядка клітини з підірваною міною l0, l; // лічильники для відкриття public int[] v = new int[1664];// допоміжний масив для: // 1) випадкового розташування мін // 2) черги відкриття клітин без мін public int[] u = new int [1664]; // допоміжний масив для черги відкриття клітин без мін public int[,] a = new int [32, 52]; // дані про кількість сусідніх клітин з мінами public bool[,] b = new bool[32, 52]; // дані про наявність мін public bool[,] d = new bool[32, 52]; // справджується для відкритих клітин Cairo.Color[] c = { new Cairo.Color(1,1,1,1), // білий колір new Cairo.Color(0,0,1,1), // синій колір new Cairo.Color(0,0.5,0,1), // зелений колір new Cairo.Color(0.855, 0.651, 0.125, 1), // золотарний колір new Cairo.Color(0.25 , 0 , 0.5, 1), // фіолетовий колір new Cairo.Color(1 , 0 , 0 , 1), // червоний колір new Cairo.Color(0.5 , 0.5 , 0 , 1), // оливковий колір new Cairo.Color(0.293, 0 , 0.508, 1), // колір індиго new Cairo.Color(0.545, 0.271, 0.075, 1), // сідельно коричневий колір saddle brown new Cairo.Color(0.5 , 0.5 , 0.5 , 1) // сірий колір для міни }; public bool p = false; // чи є потреба перемальовувати? // # 3 Кінець } class OwnWindow : Gtk.Window { public Area a = new Area(); public OwnWindow() : base("Гра «Сапер»") { VBox vbox = new VBox(false, 2); HBox hbox = new HBox(false, 3); Label l1 = new Label("Розмір"); Label l2 = new Label("%"); Entry e1 = new Entry("10"); Entry e2 = new Entry("6"); Entry e3 = new Entry("30"); Button bt = new Button("Почати"); a = new Area(); e1.WidthChars = 2; e2.WidthChars = 2; e3.WidthChars = 2; hbox.PackStart(l1, false, false, 0); hbox.PackStart(e1, false, false, 0); hbox.PackStart(e2, false, false, 0); hbox.PackStart(l2, false, false, 0); hbox.PackStart(e3, false, false, 0); hbox.PackStart(bt, false, false, 0); vbox.PackStart(hbox,false, false, 1); vbox.PackStart(a, true, true, 1); Add(vbox); // Додавання контейнера v у вікно ShowAll(); // Показ всього долученого у вікно } protected override bool OnDeleteEvent(Event e) { Application.Quit(); return true; } } class Example { static void Main() { Application.Init(); OwnWindow w = new OwnWindow(); Application.Run(); } }