-
Notifications
You must be signed in to change notification settings - Fork 2
/
game_options.rb
96 lines (75 loc) · 2.73 KB
/
game_options.rb
1
2
3
4
5
6
7
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
=begin
ruby_chess
The Chess Board game implemented in the metalanguage ruby
Using the mighty GTK2 library
Copyright (C) 2006 Sébastien Boisvert
http://sebhtml.blogspot.com/
Sebastien.Boisvert<AT>USherbrooke<DOT>CA
This software is released under the GPL version 2 (1991)
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; version 2 of the License
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
An online plain text version is available here:
http://www.gnu.org/licenses/gpl.txt
=end
require 'gtk2'
require_relative 'human'
require_relative 'artificial_intelligence'
class GameOptions < Gtk::Window
def initialize chess
super('Ruby Chess')
chess = chess
signal_connect "destroy" do
chess.terminate
end
button = Gtk::Button.new
ok_label = Gtk::Label.new
ok_label.label = "Start"
button.add ok_label
black_combobox= Gtk::ComboBox.new
human_option = "Human World"
ai_option = "Artificial Intelligence"
black_combobox.append_text ai_option
black_combobox.append_text human_option
black_combobox.active = 0
@black_combobox = black_combobox
white_combobox = Gtk::ComboBox.new
white_combobox.append_text ai_option
white_combobox.append_text human_option
white_combobox.active = 0
@white_combobox = white_combobox
white_label = Gtk::Label.new
white_label.label = 'White'
black_label = Gtk::Label.new
label = Gtk::Label.new
label.label = "Choose stuff"
black_label.label = 'Black'
table = Gtk::Table.new 3, 2, false
table.attach white_label, 0, 1, 0, 1
table.attach black_label, 0, 1, 1, 2
table.attach white_combobox, 1, 2, 0, 1
table.attach black_combobox, 1, 2, 1, 2
vbox = Gtk::VBox.new
vbox.add label
vbox.add table
vbox.add button
add vbox
button.signal_connect 'clicked' do
intelligences = [ArtificialIntelligence, Human]
white_intelligence = intelligences[white_combobox.active]
black_intelligence = intelligences[black_combobox.active]
chess.white_intelligence = white_intelligence
chess.black_intelligence = black_intelligence
hide
chess.run
end
show_all
end
end