トップ 最新

GREEN HARMONY 手記

2020年04月10日 smalltalkでプログラミング20200410 [長年日記]

smalltalkプログラミング

Squeak Workspaceにて実行

| fm pen ft colorList angle arr parr |
colorList := #('#9370DB' 'red' 'orange' 'yellow'
 'green' 'blue' '#000080' '#800080' '#808000').
fm := Form extent: 300@300 depth: Display depth.
fm fillColor: Color white.
pen := Pen newOnForm: fm.
pen defaultNib: 1.
ft := StrikeFont familyName: #Atlanta pointSize: 30.
pen place: 100@180.

parr := {0@0 . 5@ -5 . -5@ -5 . 
	-5@5 . 5@20 . 20@ -20 .
	-20@ -20 . -20@20 .
	20@35 . 35@ -35.
	-35@ -35 . -35@35
	}.

arr := #(9 1 2 3 4 5 6 7 8).
angle := 90.
1 to: 12 do: [:i |
	i = 2 ifTrue: [ angle := -90].
	pen place: (pen location + parr at: i). 
	pen turn: angle.
	arr do: [:n |
		pen color: (Color fromString: (colorList at:n)).
		pen print: n asString withFont: ft.
	].
	arr := arr collect: [:n |  n * 2 - 1 \\ 9 + 1]. 
].
fm asMorph openInWorld