Honeycombs: Difference between revisions
Content added Content deleted
m (→{{header|Sidef}}: defined 'Tk' as functional (capital `S`)) |
m (→{{header|Sidef}}: minor code simplifications) |
||
Line 2,410: | Line 2,410: | ||
class Honeycombs( |
class Honeycombs( |
||
Number size = 36, |
Number size = 36, |
||
Array letters = ('A' .. 'Z' |
Array letters = @('A' .. 'Z').shuffle.first(20), |
||
) { |
) { |
||
Line 2,445: | Line 2,445: | ||
method comb(canvas, fromx, fromy, size, count) { |
method comb(canvas, fromx, fromy, size, count) { |
||
for x in ( |
for x,y in ( |
||
RangeNum(fromx, 3*count*size - 1, 3*size) ~X |
|||
RangeNum(fromy, 7.5*size - 1, 2*altitude(size)) |
|||
) { |
|||
⚫ | |||
var id = canvas.createPolygon( |
|||
self.polygon_coordinates(x, y, size), |
|||
'-outline' => 'black', |
|||
'-fill' => 'yellow', |
|||
'-width' => 2, |
|||
) |
|||
var letter = letters.shift |
|||
var letter_id = canvas.createText(x, y, |
|||
'-text' => letter, |
|||
'-fill' => 'red', |
|||
'-text' => letter, |
|||
'-font' => "{sans} #{size * 0.9}", |
|||
) |
|||
canvas.MainWindow.bind('all', letter.lc, |
|||
self.change(canvas, id, letter_id)) |
|||
[id, letter_id].each { |b| |
|||
self.change(canvas, id, letter_id)) |
|||
canvas.bind(b, '<Button-1>', |
|||
⚫ | |||
} |
} |
||
} |
} |