Pharo

Smalltalk でもズンドコキヨシ(仕事は?)

| results zunDoko | makeZunDokoBlock := [ | array collection | array := #('zun' 'doko'). collection := OrderedCollection new. 5 timesRepeat: [collection add: (array at: (Random new next * 2) asInteger + 1)]. collection]. kiyoshiCheckBlock …

メッセージとは何か

ここに書いておけば、もしかすると検索に引っかかって理解の助けになるかも知れないので書いておきます。 Person* taro = new Person( "太郎" ); Vegetable* veg = new veg(); taro->eat( veg );を例に Pharo で説明してみます。Pharo は Smalltalk 処理系の…

ピラミッドのソース

暇なので書きましたw まず始めに以前に書いた KochMorph のコードを再利用したいのでリファクタリングから行います。 FractalMorph FractalMorph は図形を描画するための基本的なメソッドを実装します。 FractalMorph は BorderedMorph のサブクラスにしま…

三角形のピラミッドを描画するのやってみた

コードはあまり需要無いと思うので結果だけです。*1 以前に掲載したコッホ曲線を書くコードを利用しています。 テキストで描画するのよりも簡単だと思います。たぶん。 *1:暇な時に気が向いたら掲載するかも

borderWidth のデフォルト値が 1.3?

なんかテストが失敗していたので、調べていたのですが。BorderedMorph new をインスペクトすると、 自宅 PC では、なぜか borderWidth のデフォルト値が 1.3 になります。仕事場 PC だと 1 です。なんで??? サブクラスで self borderWidth: 1 と設定して…

練習問題2.4

同じ c の値に対する例を見つけよ。s=199 でプログラムで調べました。 (make-pythagoras 手続きの引数 limit に 199 を与えました。) (define nil '()) (define (square x) (* x x)) (define (euclid-gcd a b) (if (= b 0) a (euclid-gcd b (remainder a b))…

Pharoでフラクタル図形を書いてみよう

技術士試験の平成27年度情報工学部門に出題されたコッホ曲線を Pharo で実装してみます。 Pharo を使用するのはグラフィックス周りの実装が楽だからです。 BorderedMorph subclass: #KochMorph instanceVariableNames: 'location angle' classVariableNames:…