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' -> shuffle.first(20)),
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 (fromx ..^ (3*count*size - 1, 3*size)) {
for x,y in (
for y in (fromy ..^ (7.5 * size - 1, 2 * altitude(size))) {
RangeNum(fromx, 3*count*size - 1, 3*size) ~X
var id = canvas.createPolygon(
RangeNum(fromy, 7.5*size - 1, 2*altitude(size))
) {
self.polygon_coordinates(x, y, size),
'-outline' => 'black',
var id = canvas.createPolygon(
'-fill' => 'yellow',
self.polygon_coordinates(x, y, size),
'-width' => 2,
'-outline' => 'black',
)
'-fill' => 'yellow',
var letter = letters.shift
'-width' => 2,
var letter_id = canvas.createText(x, y,
)
'-fill' => 'red',
var letter = letters.shift
var letter_id = canvas.createText(x, y,
'-text' => letter,
'-font' => "{sans} #{size * 0.9}",
'-fill' => 'red',
)
'-text' => letter,
canvas.MainWindow.bind('all', letter.lc,
'-font' => "{sans} #{size * 0.9}",
self.change(canvas, id, letter_id))
)
[id, letter_id].each { |b|
canvas.MainWindow.bind('all', letter.lc,
canvas.bind(b, '<Button-1>',
self.change(canvas, id, letter_id))
[id, letter_id].each { |b|
self.change(canvas, id, letter_id))
}
canvas.bind(b, '<Button-1>',
self.change(canvas, id, letter_id))
}
}
}
}