157
157
frame = Ttk::Frame.new($knightstour)
158
158
sep = Ttk::Separator.new(frame)
159
159
Tk.grid(sep, :columnspan=>4, :row=>0, :sticky=>'ew', :pady=>2)
161
Ttk::Button.new(frame, :text=>'�����ɻ���',
162
:image=>$image['view'], :compound=>:left,
163
:command=>proc{showCode 'knightstour'}),
164
Ttk::Button.new(frame, :text=>'�Ĥ���',
165
:image=>$image['delete'], :compound=>:left,
161
Ttk::Button.new(frame, :text=>'�����ɻ���',
162
:image=>$image['view'], :compound=>:left,
163
:command=>proc{showCode 'knightstour'}),
164
Ttk::Button.new(frame, :text=>'�Ĥ���',
165
:image=>$image['delete'], :compound=>:left,
167
167
$knightstour.destroy
168
168
$knightstour = nil
170
170
:padx=>4, :pady=>4)
171
171
frame.grid_columnconfigure(0, :weight=>1)
178
178
$knightstour.withdraw
179
179
base_f = Ttk::Frame.new($knightstour)
180
180
@board = Tk::Canvas.new(base_f, :width=>240, :height=>240)
181
@log = Tk::Text.new(base_f, :width=>12, :height=>1,
181
@log = Tk::Text.new(base_f, :width=>12, :height=>1,
182
182
:font=>'Arial 8', :background=>'white')
183
183
scr = @log.yscrollbar(Ttk::Scrollbar.new(base_f))
189
189
tool_f = Ttk::Frame.new($knightstour)
190
190
label = Ttk::Label.new(tool_f, :text=>'�¹�®��')
191
scale = Ttk::Scale.new(tool_f, :from=>8, :to=>2000, :variable=>@delay,
191
scale = Ttk::Scale.new(tool_f, :from=>8, :to=>2000, :variable=>@delay,
192
192
:command=>proc{|n| set_delay(n)})
193
check = Ttk::Checkbutton.new(tool_f, :text=>'ȿ��',
193
check = Ttk::Checkbutton.new(tool_f, :text=>'ȿ��',
194
194
:variable=>@continuous)
195
@start_btn = Ttk::Button.new(tool_f, :text=>'����',
195
@start_btn = Ttk::Button.new(tool_f, :text=>'����',
196
196
:command=>proc{tour()})
197
@exit_btn = Ttk::Button.new(tool_f, :text=>'��λ',
197
@exit_btn = Ttk::Button.new(tool_f, :text=>'��λ',
198
198
:command=>proc{_exit()})
200
200
7.downto(0){|row|
209
209
coords = [col * 30 + 4, row * 30 + 4, col * 30 + 30, row * 30 + 30]
210
@board.create(TkcRectangle, coords,
210
@board.create(TkcRectangle, coords,
211
211
:fill=>fill, :disabledfill=>dfill,
212
212
:width=>2, :state=>:disabled)
216
216
@knight_font = TkFont.new(:size=>-24)
217
@knight = TkcText.new(@board, 0, 0, :font=>@knight_font,
218
:text=>Tk::UTF8_String.new('\u265e'),
219
:anchor=>'nw', # :tags=>'knight',
217
@knight = TkcText.new(@board, 0, 0, :font=>@knight_font,
218
:text=>Tk::UTF8_String.new('\u265e'),
219
:anchor=>'nw', # :tags=>'knight',
220
220
:fill=>'black', :activefill=>'#600000')
221
221
@knight.coords(@board.coords(rand(64)+1)[0..1])
222
222
@knight.bind('ButtonPress-1', '%W %x %y'){|w,x,y| drag_start(w,x,y)}